【Unity公式チュートリアル】 サバイバルシューター part.5 プレイヤーを追いかける敵を作成する!
こんにちは!ヤギです!
Unity公式チュートリアルのサバイバルシューターをやってみるpart.5になります。
記事概要
今回の記事では、プレイヤーを追いかける敵の作成についてご説明していきます。※part.5に対応する公式チュートリアルは、
Creating Enemy #1 - Unityとなります。
※前回の記事はこちら
www.yagigame.com
敵のコンポーネントの設定
1. Project > Assets > Models > Characters > ZombunnyをHierarchy viewにドラッグします。※これが1体目の敵となります。
2. Projects > Asssts > Prefabs > HitParticlesをHierarchy > Zombunnyにドラッグし適用します。
※敵が攻撃を受けた時のエフェクトを設定しています。
3. Zombunny > Inspector > Layer > Shootableに変更します。
4. Zombunny > Inspector > Add Componentをクリックし、Rigidbodyを選択します。
5. Rigidbodyを以下の内容に修正します。
・Drag > Infinity
・Angular Dragg > Infinity
・Freeze Position > Yにチェック
・Freeze Rotation > X,Zにチェック
6. Zombunny > Inspector > Add Componentをクリックし、Capsule Colliderを選択します。
7. Capsule Colliderを以下の内容に修正します。
・Center > y > 0.8
・Height > 1.5
8. Zombunny > Inspector > Add Componentをクリックし、Sphere Colliderを選択します。
※Playerとの接触検知に使うため、少し大きめにしています。
9. Sphere Colliderを以下の内容に修正します。
・Is Trigger > チェクする
・Center > y > 0.8
・Radius > 0.8
10. Zombunny > Inspector > Add Componentをクリックし、Audio Sourceを選択します。
※敵が攻撃を受けた時の効果音を設定します。
11. Audio Sourceを以下の内容に修正します。
・Audio Clip > Zombunny Hurt
・Play On Awake > チェックを外す
移動できる範囲の設定
敵が移動できる範囲の設定を行なっていきます。※今回はUnityのNavMeshという機能を使っています!
1. Window > AI > Navigationをクリックします。
2. Zombunny > Inspector > Add Componentをクリックし、Nav Mesh Agentを選択します。
3. Nav Mesh Agentを以下の内容に修正します。
・Speed > 0.3
・Stopping Distance > 1.3
・Radius > 0.3
・Height > 1.1
4. 手順1で開いたNavigationを以下の内容に修正します。
・Radius > 0.75
・Height > 1.2
・Step Height > 0.1
5. Navigation > Bakeをクリックし、移動できる範囲を作成します。
※移動できる範囲が、青く表示されたら成功です!
敵のアニメーションの作成
1. Projects > Assets > Animation > Animator Controllerを選択し、名前をEnemyACとします。2. EnemyACをHierarchy > Zombunnyにドラッグして適用します。
3. EnemyACをダブルクリックし、Animator viewを開きます。
4. Project > Asset > Models > Characters > Zombunnyの「Move」「Idle」「Death」をEnemyACのAnimator viewにドラッグします。
※オレンジで表示されているのがデフォルトのアニメーションとなります。
5. Animator view > Parameters > +をクリックし、Triggerを選択して、名前を「PlayerDead」とします。
※プレイヤーが倒された場合使用するトリガー
6. Animator view > Parameters > +をクリックし、Triggerを選択して、名前を「Dead」とします。
※敵が倒された場合使用するトリガー
7. Moveを右クリックし、Make Transitionを選択し、矢印をIdleに繋ぎます。
8. 7で作成した矢印をクリックし表示されたInspector > Conditionsに 「PlayerDead」を設定します。
9. 7で作成した矢印をクリックし表示されたInspector > Has Exit Timeのチェックを外します。
※このチェックを外すことで、アニメーションが即座に切り替わるようになります。
10. 同様にAny Stateを右クリックし、Make Transitionを選択し、矢印をDeathに繋ぎます。
11. 10で作成した矢印をクリックし表示されたInspector > Conditionsに 「Dead」を設定します。
12. 10で作成した矢印をクリックし表示されたInspector > Has Exit Timeのチェックを外します。
※これで、敵のアニメーションの設定は完了です!
プレイヤーを追いかけるスクリプトの作成
1. Project > Assets > Scripts > Enemy > EnemyMovementをZombunnyにアタッチします。2. Playerを追いかけるスクリプト(EnemyMovement.cs)を作成します。
※一部ソースはコメントアウトしています。今後のチュートリアルで使っていきます!
※今回関係するのは、NavMeshを使いプレイヤーを追いかけるようにするところです。
using UnityEngine; using System.Collections; public class EnemyMovement : MonoBehaviour { Transform player; //PlayerHealth playerHealth; //EnemyHealth enemyHealth; UnityEngine.AI.NavMeshAgent nav; //NavMesh Agent(敵) void Awake () { //プレイヤータグのゲームオブジェクトを探し、場所を取得する player = GameObject.FindGameObjectWithTag ("Player").transform; //playerHealth = player.GetComponent <PlayerHealth> (); //enemyHealth = GetComponent <EnemyHealth> (); //NavMeshAgentコンポーネントを取得する nav = GetComponent <UnityEngine.AI.NavMeshAgent> (); } void Update () { //if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) //{ //NavMesh Agent(敵)をプレイヤーに向かって動かす nav.SetDestination (player.position); //} //else //{ // nav.enabled = false; //} } }
※これで、敵がプレイヤーを追いかけるようになります!
実行してみましょう
プレイヤーが移動すると、敵が追いかけてくれば大成功です!次回予告
次回は、画面上に表示されるUIの作成を行なっていきます!※次回の記事はこちら
www.yagigame.com
次回に対応する公式チュートリアルは、「Health HUD」です!
読んでいただきありがとうございました!