各種ゲームオブジェクトをスクリプトから生成する

シェアする

通常 Unity の画面から GUI で生成する各種オブジェクトをスクリプトで作成してみる。

Sponsored Links

プリミティブなゲームオブジェクト

createprimitive

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");

ライトを作成する

createlight

ライトを作成するには空のゲームオブジェクトを生成した後、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 を作成する

createsprite

Sprite の場合も空のゲームオブジェクトに SpriteRenderer を追加して表示する。スクリプトで作成するついでにスプライト画像そのものもインスペクタを利用せずにロードしている。

Sprite spriteImage = Resources.Load("Sprite/test", typeof(Sprite)) as Sprite;
new GameObject("Sprite").AddComponent<SpriteRenderer>().sprite = spriteImage;

あとは思いついたら書く。

Sponsored Link

シェアする

フォローする

コメント

  1. […] 各種ゲームオブジェクトをスクリプトから生成する […]