Skip to content →

Unityで複数のGameObjectを一気に削除する

Unityでは一つのゲームオブジェクトを作り、そのクローンを作ることができます。例えば、ボタンを押したときにボールを発射するようなゲームの場合、ボタンを押すごとに同じボール(ゲームオブジェクト)をコピーして生成することができます。

何も処理をしなければ、ボールはゲームオーバーになっても残ったままです。しかし、ゲームが終わっているのに、いつまでもボールが残っているわけにはいきませんので、ゲームオーバー時に複数のクローンを一気に削除するようにします。

var clones = GameObject.FindGameObjectsWithTag ("ball");
for (var clone in clones){
    Destroy(clone);
}

このようにFindGameObjectsWithTagでTagがballと設定されたものをclonesに配列として格納します。そして後はそれを取り出してDestroyで削除することができます。

ちなみに一気に削除せずに、下のようにボールがつくられた時に数秒後に自動的に消えるようにすることもできます。

yield new WaitForSeconds(3.0);
Destroy(ball.gameObject);

ボールを生成したタイミングで◯秒後に削除するように設定しておけます。

[sc name=”ios”][sc name=”engeneer”]

Published in ビジネスハック