
レッスン 2.3 - ランダムに向かってくる動物
Tutorial
Beginner
+0XP
60 mins
(247)
Unity Technologies

概要:
動物のプレハブは、画面を横切って歩いたり、範囲外で破壊されたりしますが、実際にはドラッグしない限りゲーム内には現れません。このレッスンでは、動物を画面の上のランダムな場所に出現させます。このレッスンでは、画面上部のランダムな場所に動物を出現させます。そのために、新しいオブジェクトとスクリプトを作成して、産卵プロセス全体を管理します。
プロジェクトの成果物:
ユーザーが S キーを押すと、ランダムに選択された動物が画面上部のランダムな位置に出現し、プレイヤーに向かって歩いてきます。
Resources
1. 導入
2. 動物の出現のマネージャーを作る
このような複雑なオブジェクトの生成をすべて行うのであれば、プロセスを管理するための専用のスクリプトと、それをアタッチするためのオブジェクトを用意する必要があります。
- Hierarchy内に、「SpawnManager」という空のオブジェクトを作成します。
- 「SpawnManager」という新しいスクリプトを作成し、SpawnManagerにアタッチして開きます。
- 新しく public GameObject[] animalPrefabs を宣言します。
- インスペクターで、配列のサイズを動物の数に合わせて変更し、動物をドラッグして割り当てます。
3. S キーの押下を検出して動物を生成する
配列を作成してそこに動物を割り当てましたが、ゲーム中に動物を出現させる方法がないと意味がありません。そこで、動物を選択して出現させるための一時的な解決策を考えてみましょう。
Update() で、S が押された場合に画面上部に新しく動物プレハブをインスタンス化する if-then 文を書きます。新しく public int animalIndex を宣言して Instantiate 呼び出しに組み込み、インスペクターで値の編集をテストします。
4. 配列からランダムに動物を生成する
S キーを押すことで動物を出現させられるようになりましたが、いまは指定した配列のインデックスの動物しか出現させられません。指定しなくても、S キーを押すとインデックスに基づいてランダムに動物を出現させることができるように、選択範囲をランダムにする必要があります。
- S キーが押されたかどうかをチェックする if 文で、0 から配列の長さの間のランダムな int animalIndex を生成します。
- グローバルな animalIndex 変数を削除します。
5. 出現位置をランダムにする
S キーを押すと animalIndex を使ってランダムな動物をスポーンすることができるようになりましたが、すべて同じ場所に出現してしまいます。画面の下に向かって一直線になって行進しないように、ランダムな出現位置を設定しましょう。
- Vector3 の X の値を Random.Range(-20, 20)で生成される値に置き換えてテストします。
- if 文の中で、新しいローカル変数 Vector3 spawnPos を作成します。
- クラスの先頭に、float 型のプライベート変数 spawnRangeX と spawnPosZ を宣言します。
6. カメラの視点を変える
SpawnManagerが順調に出来上がってきたので、ここで一息ついてカメラをいじってみましょう。カメラの視点を変えると、このトップダウンゲームにより適切な視点が見つかるかもしれません。
- シーンビューのパースペクティブビューとアイソメトリックビューを切り替えて、違いをします。
- カメラを選択し、Projection を「Perspective」から「Orthographic」に変更します。
7. レッスンのまとめ
新機能
- プレイヤーはSボタンを押すと動物を出現させることができます。
- 動物の選択と出現場所をランダム化しました。
- カメラの投影法(遠近法・オルソグラフィック)を切り替えました。
新しい概念とスキル
- スポーンマネージャー
- 配列
- キーコード
- 乱数生成
- ローカル変数とグローバル変数
- 遠近法とアイソメトリック投影
次のレッスン
- 衝突を使って動物に食べ物をあげましょう。