Chapter8 プレハブでたくさん作る
「プレハブ」を学んでいきます。
プレハブとは「ゲームオブジェクト」と「コンポーネント」をまとめて、部品化したものです。
同じ仕様の敵キャラなどを複数出したいときにプレハブ化しておきます。
オリジナルを修正すれば、コピーされたものも同時に修正されるので、効率がよくなります。
プレハブ化自体の操作は、エディター内でドラッグすれば良いだけなので簡単です。
Chapter8.2 クリックしたらプレハブが登場する
ここではクリック位置の仕様が説明されます。
Unityのゲーム画面は「カメラから見た位置」と「ディスプレイ上の位置」とに分かれているため、
実際にプレハブを登場させるゲームの中での位置として、カメラの中での位置に変換する必要があるようです。
そういった記述もスクリプトに書いていきます。
var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition + Camera.main.transform.forward);
「画面をクリックしたら~する」というギミックは、いろいろと応用が利きそうです。
本書のオマケでは「キーを押したらプレイヤーから発射されるミサイル」スクリプトもあります。
Chapter8.3 範囲内にプレハブを登場させる
あるゲームオブジェクトの範囲内のどこかに、ときどきプレハブを登場させる、ということをしてみます。
この指定オブジェクト内ランダム生成も応用が利きそうです。
Chapter8.4 生成したプレハブを時間指定で削除する
プレハブで無限に登場してしまうゲームオブジェクトは、メモリ消費を抑えるうえでも削除する必要があります。
Destroy(this.gameObject, <秒数>);
こういった「Unity関数?」もたくさん覚えていく必要がありそうです。
本書のオマケとして、以下のサンプルがありました。
- 画面外へ出ると削除(ミサイル消える)
- 衝突で自分と相手を削除(破壊できるミサイル)
- 衝突で自分だけを削除(自分だけ消えるミサイル)
Chapter8.4.2 サンプル・ウニ逃げゲーム
雲の範囲からウニがランダムで降ってくるので、回避するゲームです。
ウニに当たったらゲームオーバーとなります。
以前すっ飛ばした衝突すると表示する(複数対応)版をアタッチしないとエラーになります。
(ウニがたくさんあるから)
プレハブといくつかの関数
同じゲームオブジェクトを効率よく複数登場させる「プレハブ」化と、いくつかのお役立ち関数を学ぶことが出来ました。
サンプルスクリプトがあるものの、まだまだコピペするだけ状態が続きます(´・ω・`)
コメント