通常 Unity の画面から GUI で生成する各種オブジェクトをスクリプトで作成してみる。
プリミティブなゲームオブジェクト
GameObject.CreatePrimitive で作成できる基本的なゲームオブジェクトを羅列。作成できるのは Plane, Cube, Sphere, Capsule, Cylinder, Quad の 6 つ。
GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
plane.transform.position = new Vector3(0, 0, 0);
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position = new Vector3(1, 0, 0);
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.position = new Vector3(2, 0, 0);
GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
capsule.transform.position = new Vector3(3, 0, 0);
GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cylinder.transform.position = new Vector3(4, 0, 0);
GameObject quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
quad.transform.position = new Vector3(5, 0, 0);
空のゲームオブジェクトを作成する
空のゲームオブジェクトは new GameObject() するだけでおk。引数に string を渡してやるとその名前になる。
GameObject emptyGameObject = new GameObject("Empty Game Object");
ライトを作成する
ライトを作成するには空のゲームオブジェクトを生成した後、Light を追加してやる。
ライトの種類は Area, Directional, Spot, Point の 4 種類ある。
GameObject lightGameObject = new GameObject("Directional Light");
lightGameObject.AddComponent<Light>();
lightGameObject.light.type = LightType.Directional;
lightGameObject.light.color = Color.red;
lightGameObject.transform.position = new Vector3(0, 1, 0);
Sprite を作成する
Sprite の場合も空のゲームオブジェクトに SpriteRenderer を追加して表示する。スクリプトで作成するついでにスプライト画像そのものもインスペクタを利用せずにロードしている。
Sprite spriteImage = Resources.Load("Sprite/test", typeof(Sprite)) as Sprite;
new GameObject("Sprite").AddComponent<SpriteRenderer>().sprite = spriteImage;
あとは思いついたら書く。