Top > ComputerGraphics > Unity > Tips > Script > ControlGameObjectInstance
Last-modified: Thu, 21 Mar 2013 19:18:15 JST
Counter:19906 Today:3 Yesterday:6 Online:4
このエントリーをはてなブックマークに追加

スクリプトからGameObjectのインスタンスを生成・削除する

About

ゲームの進行によって敵キャラクターや物体を増減させることは良くあります。そのような場合に利用するスクリプトについて掲載しています。

HowTo

例ではInspectorビューから対象を設定できるようにPublicフィールドとしてGameObjectを設けました。これでInspectorビューにソースコードから増減させたいアセット(GameObject)をドラックアンドドロップできるようになります。

実際に増やす場合にはGameObject.Instatiate(GameObject)を利用します。Unityのゲームシーンに投入するようなコード文はありませんが、これでシーンに反映されます。あとは生成したインスタンスの位置や姿勢を調整してあつかうだけです。

一方でシーンから対象を削除したい場合には'GameObject.Destroy(GameObject)を利用します。こちらもこのコード1つでシーン中から対象のGameObject(のインスタンス)を削除することができます。

public GameObject prefab;
…
//シーンに追加する場合
GameObject gameobj = (GameObject)GameObject.Instatiate(prefab);
//次でも可(MonoBehaviour継承クラス内)
           gameobj = (GameOjbect)Instatiate(prefab);

//シーンから削除する場合
GameObject.Destroy(gameobj);

UnityのHierarchyビューでは名前に(clone)がついて追加して表示されます。シーンが終わると、追加されたGameObjectはなくなります。

Reference