!!!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.material = m_Material; // MeshFilter の作成. m_gameObjects[i].AddComponent(); // 位置の変更. 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(); でも可能。 「transform」で位置や回転を指定します。 ---- {{lastmodified}}