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を取得」を参照。
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」で位置や回転を指定します。
最終更新時間:2014年01月17日 14時57分53秒