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

unity_script_create_gameobjectの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!GameObjectの作成

カラのGameObjectを作成し、ここから複数のGameObjectを新たに生成します。
カラのGameObjectには以下のスクリプトをComponent割り当てておいてください。

 using UnityEngine;
 using System.Collections;
 
 public class CreateGameObjectTest : MonoBehaviour {
     public int createCount;                // 作成するGameObject数.
     private Material m_Material;           // 割り当てるマテリアル.
     private GameObject [] m_gameObjects;   // 作成したGameObjectを格納する配列.
  
     void Start () {
         // リソースからマテリアルの読み込み.
         m_Material = Resources.Load("materials/TestMat", typeof(Material)) as Material;
 
         if (createCount == 0) return;
 
         m_gameObjects = new GameObject[createCount];  // GameObjectの配列を作成.
 
         for (int i = 0; i < createCount; i++) {
             // GameObjectの作成.
             m_gameObjects[i] = new GameObject("obj_" + i);
 
             // MeshRenderer の作成.
             MeshRenderer meshRenderer = m_gameObjects[i].AddComponent<MeshRenderer>();
 
             // MeshRenderer のマテリアルを割り当て.
             meshRenderer.material = m_Material;
 
             // MeshFilter の作成.
             m_gameObjects[i].AddComponent<MeshFilter>();
 
            // 位置の変更.
            m_gameObjects[i].transform.localPosition = new Vector3((float)i * 0.5f, 0.0f, 0.0f);
         }
     }
 }
Resources.Loadでのリソースの読み込みは「[[リソースとしてObjectを取得|unity_script_get_resources_object]]」を参照。
 public int createCount;
は、Unityエディタ上で数値を指定でき、そこで生成するGameObject数を指定します。

「new GameObject」でGameObjectを新規に作成し、MeshRenderer とMeshFilter を追加することでメッシュの形状として機能します。
MeshRendererでマテリアルを指定。

別途、自身で作成したスクリプトを割り当てる場合は、
 MyScript script= m_gameObjects[i].AddComponent("MyScript") as MyScript;
のように指定します(MyScript.csが作成したスクリプト/Class名です)。
 m_gameObjects[i].AddComponent<MyScript>();
でも可能。

「transform」で位置や回転を指定します。
----
{{lastmodified}}