- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!プロジェクト内のObjectを取得
※ UnityEditorを使用する機能は、Android/iOSでは使用できないようです。
iOS/androidでも動作する外に出したObjectの読み込みを行う場合は「[[リソースとしてObjectを取得|unity_script_get_resources_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にマテリアルを割り当て.
}
}
----
{{lastmodified}}