プロジェクト内のObjectを取得
※ UnityEditorを使用する機能は、Android/iOSでは使用できないようです。
iOS/androidでも動作する外に出したObjectの読み込みを行う場合は「リソースとしてObjectを取得」を参照。
プロジェクト内のオブジェクト(Object/Material/Textureなど)を取得する例です。
PCのみで動作。
要 : using UnityEditor;
AssetDatabaseクラスのstatic関数からアクセスします。
なお、あらかじめAssetとしてプロジェクトに画像や形状の読み込み、マテリアルの作成などを行っておく必要があります。
テクスチャの読み込み
Texture2D t = AssetDatabase.LoadAssetAtPath("Assets/images/photo_leaf_texture.png", typeof(Texture2D)) as Texture2D;
または
Texture2D t = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/images/photo_leaf_texture.png");
プロジェクトの「Assets/images/photo_leaf_texture.png」の画像を読み込みます。
読み込みに失敗した場合はnullが返ります。
マテリアルの読み込み
Material m = AssetDatabase.LoadAssetAtPath("Assets/materials/ground.mat", typeof(Material)) as Material;
プロジェクトの「Assets/materials/ground.mat」のマテリアルを読み込みます。
読み込みに失敗した場合はnullが返ります。
指定のGameObjectにAsset内のマテリアルを割り当てる
例として、シーンに配置されているGameObjectに対してAssets内のマテリアルを割り当てます。
// Assets内のマテリアルを読み込み. Material m = AssetDatabase.LoadAssetAtPath("Assets/materials/ground.mat", typeof(Material)) as Material; if (m != null) { // シーンの"Sphere"のGameObjectを取得. GameObject g = GameObject.Find("Sphere") as GameObject; if (g != null) { g.renderer.material = m; // GameObjectにマテリアルを割り当て. } }
最終更新時間:2019年01月02日 18時53分48秒