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関数:オブジェクトを削除する