
今回は、Unityで作ったprehubを決まった場所から生成する方法を紹介します。
アクションゲームを作っていて敵や銃弾を作りたいといった時に一つ一つ処理を追加していくととても大変で、さらにはゲーム自体が重くなってしまいますよね。
そんな時に使えるのがプレハブのインスタンス生成です。
はじめに
まずコードとオブジェクトの作り方ですが、準備するものとして
- prehubを作りたい位置のオブジェクト
- インスタンス生成したいプレハブ
- プレハブが画面外に行ってしまった後ずっと存在してしまわないように削除するコライダー
が必要になります。
コードを追加しよう
次にこのようなコードを入力してください。
このコードはinstanceに指定したオブジェクトの位置からObjに指定したプレハブを生成するというコードとなっています。
コードが完成したら次はUnity側でオブジェクトを指定していきましょう。
このように自分で作ったオブジェクトとプレハブを選択してください。
ここまできたらほぼ完成なのですが、プレハブが増えすぎないように削除するコライダーを忘れないでください。
オブジェクトを作成しよう
では、空のオブジェクトを作成します。
そのオブジェクトにこのようなスクリプトを追加しましょう。
このオブジェクトにはコライダーを追加し、さらにTriggerにもチェックをしておいてください。
同様にプレハブの方にもコライダーを追加しTriggerにチェックを入れましょう。
※もし、ここまでやってもインスタンス生成されたプレハブが削除されない場合は、プレハブにRigidbodyを追加してからもう一度試してみてください。
Rigidbodyを追加した際には重力をなくしたり、変な回転をしないように調整する必要があります。
これで、無限にインスタンス生成されるオブジェクトが完成し、尚且つ容量に負担をかけないオブジェクトができたと思います。
動作の確認
実際に作ってみた動画がありますので、もしよろしければ見てみてください。
画面右側の魚が今回の無限インスタンスです。
ではまた。