お電話でのお問い合わせ
電話をかける
電話をかける メニューボタン
学習コンセプトカリキュラム・料金教室紹介無料体験授業

フタバゼミ
ゼミノート

【Unity C#】Instantiateで生成したプレハブを消す

プレハブ(Prefab)をたくさん生成したとき、不要になったものは削除しなければなりません。

今回は、1秒おきにボールを生成。

Z座標が50になったときに削除する仕組みを、考えていきましょう。

まずはボールを動かす

Sphereのオブジェクトを用意して、リジッドボディを追加。

動かすためのスクリプトを書きます。

移動の方法はいくつかありますが、加速効果を無くした上で、ボールに200の力を加えました。

プレハブ化して連続生成

続いて、ボール(Sphere)をプレハブ化しました。

そして、空のオブジェクトを作成し、Manage.csを作ってアタッチ。

SerializeFieldにボール(Sphere)を入れます。

プレイしてみると、1秒おきにPrefabが生成されて、Z方向に動いていくのが確認できます。

動くには動いたのですが、このままだと、プレハブが次々と生成され、だんだん処理が重くなりそうですね。

ある座標に来たらプレハブを削除

ゲームビューの外に出れば、プレハブはもう必要ありません。

そこで、Z座標が50のところまで来たとき、プレハブを削除できるスクリプトを作ってみましょう。

Delete.csを新規作成して、プレハブにアタッチ。

実行してみると、プレハブが順番に消えていくのが確認できました。

Instantiateで連続生成、条件によって削除。

この組み合わせ、いろんなゲームシーンで活用できますね。