トップ 一覧 検索 ヘルプ RSS ログイン

unity_script_get_objectの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!プロジェクト内の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}}