ゲームオブジェクトの作成
空のオブジェクトをシーンに追加する
Unity エディタの「GameObject」メニューからシーンに追加できるオブジェクトは、すべて UnityEngine.GameObject クラスのインスタンスです。シーンに追加されているオブジェクトは、すべて Unity エディタ上の「Hierarchy」ウィンドウに表示されます。
UnityEngine.Object UnityEngine.GameObject
public class sealed GameObject : Object
スクリプトから明示的に GameObject クラスをインスタンス化してオブジェクトを生成できます。このクラスのコンストラクタはオーバーロードされています。
public GameObject()
public GameObject(string name)
public GameObject(string name, System.Type[] components)
name パラメータにはオブジェクトの名前を指定します。この名前はオブジェクトを識別するために用いられ Unity エディタ上の「Hierarchy」ウィンドウなどに表示されます。パラメータを渡さなかった場合はデフォルトの名前のオブジェクトが生成されます。
components パラメータには、生成したオブジェクトに追加するコンポーネントの型を配列で指定します。コンポーネントについては後述するので、この場ではコンポーネントを持たない空のオブジェクトを作成してみましょう。
using UnityEngine; public class Test : MonoBehaviour { void Start() { GameObject obj = new GameObject(); } }
コード1は GameObject クラスのパラメータを受け取らないコンストラクタを呼び出し、スクリプトから空の GameObject インスタンスを生成しています。
Start() メソッド内で生成した GameObject はローカル変数に保存しているだけで利用はしていません。しかし、Start() メソッドが終了してインスタンスへの参照がなくなっても、GameObject オブジェクトは Unity エンジンによって管理されているためガベージコレクションによって自動的に削除されることはありません。
空のゲームオブジェクトは座標を持っていますが、それ以外の役割はありません。ゲームオブジェクトにコンポーネントを追加することで、描画や多様な振る舞いを実装できます。