Unity C#でオブジェクトを即座に、または指定秒数後に破壊する方法/Destoryの使い方

pearl-harbor IT

Destroyを使うとオブジェクトを破壊することができます。
ここではプレハブの「弾」を、指定秒数後に破棄する命令を書いてみたいと思います。

スポンサーリンク

成果物

dest2
ゲーム内に作ったプレハブ(オブジェクト)を、指定秒数後に自動で破棄します。

Destoryの使い方

ゲームオブジェクトを破壊
Destroy(オブジェクト,秒数);
※秒数を省略した場合0秒になる
st3
別の記事でプレイヤーキャラクターから弾を撃てるようにしたんですが、
destroyme1
この弾は何事もなければどこまでも飛んでいくので、撃てば撃っただけ増え続け、リソースを圧迫し続けます。
それは困るので、しばらくしたら壊れるようにしてみます。
destroyme2
弾のスクリプトに、Destroy(this.gameObject);と書けば、自分自身(オブジェクト)をゲームから除去します。
ヒットした時はこれを実行すればいいんですが、今回はヒットしなかった時の話なので、
destroyme3
最後に数字をつけてDestroy(this.gameObject, 1);のようにします。
一秒後に自分を破棄という時限式の命令になります。これをStartメソッド内で実行してやれば、
dest1
弾を撃っても、
dest2
指定秒数後に自動的に消滅します。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント