Unity公式チュートリアルSurvival Shooter日本語実践Chapter.9

9.Spawning Enemies

Prefab化したEnemyを、プレイ中にスポーンさせる処理を実装する。チュートリアルや教本でよく見るオーソドックスな方法がベースになっているものの、スポーンする種類の増やし方や複数のスポーン地点の設定など、今後のために押さえておきたいポイントも含まれている。

なお筆者の環境(Unity2018 2.1f1)では、PrefabにZomBearとHellephantが存在しなかったため、Complete-Gameフォルダからその2つのPrefabをコピーしてきた。その際、ScriptはComplete-Gameフォルダ内のものを参照していたため一度リムーブし、MyProject内のScriptに付け替えた。

ZomBear,HellephantにAnimatorを設定

ZomBearの場合

ZomBunnyと同じアニメーション、ステート、パラメータを流用できるため、ZomBunnyと同じEnemyACをそのままAnimatorのControllerとして設定する。

Hellphantの場合

モデルの大きさや骨格、関節が異なるためEnemyACをそのまま流用することができない。このような、異なる骨格、アニメーションを持つモデルでも、同じステート、トランジションを流用したいときに登場するのがAnimation Override Controllerである。
Projectパネル内で新たにHellephantAOCを作成したら、InspectorのControllerに基となるAnimationControllerをD&Dで設定する。するとその下に、ステートの一覧と上書きするアニメーションを設定するカラムが表示される。今回は、Hellephantのモデル内にあるMove,Idle,Deathのアニメをそれぞれ上書きする。
最後にHellephantのAnimatorコンポーネントのControllerにHellephantAOCを設定して準備完了。

何が同じアニメーションで、何がそうでないのか、については一度3Dのモデリングを学んだほうが理解が深まるような気がする。今の時点では、BunnyとBearは大きさも骨格も同じだから表面のテクスチャだけ張り替えてアニメを流用してるんだろうな、というくらいの理解で流しておく。というかそうしないとドツボにはまりそう……。

EnemyManagerの準備

空のGameObjectを作成し、EnemyManagerとリネームする。スクリプトEnemyManagerが用意されているのでそれをアタッチし中身を確認しておく。

変数

Startメソッド

Spawnメソッド

EnemySpawnPointの準備

上記のpublic Transform[] spawnPointsに代入するため、EnemyごとにSpawnPointを準備する必要がある。まずはZomBunnyのSpawnPointを設定するため、空のGameObjectとしてZombunnySpawnPointを作成する。空のGameObjectを視覚化するため、Inspectorの名前の横から色を設定することができる。ZonbearSpawnPoint,HellephantSpawnPointも同様にコピーペーストして作成し、それぞれ既定のPositionへ置く。

EnemyManagerの設定

EnemyManagerのPublicな変数にInspectorから値を設定して行く。
PlayerHealthは、前述したようにPlayerオブジェクトをそのままD&D。
EnemyはまずZomBunnyのPrefabをD&D。(つまりEnemyの数だけEnemyManagerスクリプトをアタッチし設定する必要がある)
SpawnTimeは3のままでOK。
SpawnPointsは一見D&Dする場所が無いように見えるが、先ほど作成したEnemySpawnPointをD&Dすれば配列の1要素として設定することができる。二個目をD&Dすれば配列の二個目として、どんどん追加していける。

ZomBear,Hellephantの分もEnemyManagerスクリプトをアタッチ、設定したら今回の作業は完了だ。
おっと、HellephantのSpawnTimeをちょっと短くするのを忘れずに。

実装確認

いろんなところからいろんな敵が出てくるようになった。だんだんゲームの様相を呈してきたぞ。
ゾンビゲーらしくラッシュとかあってもいいなあ。

第10回はコチラ

第8回はコチラ

2件のコメントがあります

コメントを残す

メニューを閉じる