【Unity】ゲームオブジェクトの作成と削除
目次
どんな時に使う?
自分の例で例えると、まず作成は「クリックを押すと球を発射」、「敵の出現」・・・みたいなときに使いました。
次に削除ですが「発射した弾の削除」、「倒した敵の削除」、「ゲットしたアイテムの削除」などなど。
使いどころが色々あって面白い関数だと思いました。
ゲームオブジェクトの作成
Instantiate(コピーしたいオブジェクト、位置、向き);
第二、第三引数は無しでも可能(ない場合はデフォルトの値が入る)。
弾の発射を例にして見ていきたいと思います。
public GameObject bullet; // エディター上で弾のプレハブをドラッグ
public Transform spawn; // 弾が発射される座標(エディター上でドラッグ)
float bulletSpeed = 50.0f; // 弾速
void Start() {
}
void Update() {
if(Input.GetMouseButton(0)) { // 左クリックが押されたら
GameObject obj = Instantiate(bullet, spawn.position, spawn.rotation) as GameObject; // 弾の生成
force = gameObject.transform.forward * bulletSpeed;
obj.GetComponent<Rigidbody>().AddForce(force, ForceMode.Impulse);}
}
もっといいやり方があるかもしれませんが、とりあえずこんな感じです。
ゲームオブジェクトの削除
Destroy(削除するオブジェクト、削除するまでの時間);
第二引数は無しの場合即消去。
発射した弾の削除を例として見ていきたいと思います。
void Update () {
Destroy(gameObject, 3.0f); // 三秒後に削除
}
僕流のまとめ
- Instantiate関数:オブジェクトを生成する
- Destroy関数:オブジェクトを削除する
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者:Dustin Boswell,Trevor Foucher
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)