トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_script_get_object

プロジェクト内の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秒