クリアメモリ

プログラミングやモーショングラフィックス、便利なアプリケーションなど雑多に記録するブログ

Unity プレハブを指定した位置にインスタンスするスクリプト

f:id:clrmemory:20170716235042j:plain

 

今回は、Unityで作ったprehubを決まった場所から生成する方法を紹介します。

 

アクションゲームを作っていて敵や銃弾を作りたいといった時に一つ一つ処理を追加していくととても大変で、さらにはゲーム自体が重くなってしまいます。そんな時に使えるのがプレハブのインスタンス生成です。

 

 

はじめに

 

まずコードとオブジェクトの作り方ですが、

 

準備するものとして

 

prehubを作りたい位置のオブジェクト

インスタンス生成したいプレハブ

プレハブが画面外に行ってしまった後ずっと存在してしまわないように削除するコライダー

 

が必要になります。

 

コードを追加しよう

 

次にこのようなコードを入力してください。

 

 

 

このコードはinstanceに指定したオブジェクトの位置からObjに指定したプレハブを生成するというコードです。コードが完成したら次はUnity側でオブジェクトを指定していきます。

 

 

このように自分で作ったオブジェクトとプレハブを選択してください。

ここまできたらほぼ完成なのですが、プレハブが増えすぎないように削除するコライダーを忘れないでください。

 

オブジェクトを作成

 

では、空のオブジェクトを作成します。

  

そのオブジェクトにこのようなスクリプトを追加しましょう。

このオブジェクトにはコライダーを追加し、さらにTriggerにもチェックをしておいてください。

 

同様にプレハブの方にもコライダーを追加しTriggerにチェックを入れましょう。

※もし、ここまでやってもインスタンス生成されたプレハブが削除されない場合は、プレハブにRigidbodyを追加してからもう一度試してみてください。

 

Rigidbodyを追加した際には重力をなくしたり、変な回転をしないように調整する必要があります。これで、無限にインスタンス生成されるオブジェクトが完成し、尚且つ容量に負担をかけないオブジェクトができたと思います。

 

 

動作の確認

 

実際に作ってみた動画がありますので、もしよろしければ見てみてください。画面右側の魚が今回の無限インスタンスです。