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”]

SHARE

PROFILE

入江 慎吾
イリテク株式会社代表取締役 / メンターマッチングサービスMENTAを運営(月間流通額700万突破)/ 累計20個以上のWEBサービスやアプリを開発 / CAMPFIREとコミュニティツールVoyageを共同開発中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

Published in HACK