(16)敵を作る⑤(プレーヤーを追いかける)

次は、「4種類目の敵」を作成します。

スクリーンショット 2016-07-08 13.18.27

*Tank(プレーヤー)をコピーして作成してもいいです。

・その場合、「Inspector」の中の「Tank Movement」スクリプト「Rigidbody」は「外して」おきましょう。(ポイント!)

スクリーンショット 2016-07-08 13.21.05

・「ShotShell」オブジェクトの名前を「EnemyShotShell」に変更しましょう。

・変更したら、「ShotShell」スクリプトを外して「EnemyShotShell」スクリプトをドラッグ&ドロップでつけてください。

スクリーンショット 2016-07-08 13.21.25

・Prefab等の設定をしてください。

スクリーンショット 2016-07-08 13.27.48


それでは次に、敵がプレーヤーを追いかける機能を作ってみましょう。

①スクリプトの作成

・C#スクリプトを1つ作成

・名前を「ChaseEnemy」に変更

・下記のコードを記載してください。

using UnityEngine;
using System.Collections;

public class ChaseEnemy : MonoBehaviour {

	// ①変数を定義する(データを入れるための箱を作る)
	public GameObject target;
	private NavMeshAgent agent;

	// Use this for initialization
	void Start () {

		// ②箱の中にデータを入れる(代入)
		agent = GetComponent<NavMeshAgent>();

	}

	// Update is called once per frame
	void Update () {

		// ③データの入った箱を活用する。
		// ★「destination」の意味を「グーグル翻訳」で調べよう!
		agent.destination = target.transform.position;

	}
}

②敵にコンポーネント(機能)を付ける

・付ける機能=>「Nav Mesh Agent」

スクリーンショット 2016-04-28 12.16.00 スクリーンショット 2016-04-28 12.16.13


③敵が追いかけてくることのできる範囲を決める。

・敵が追いかけてこれるのは「ブルーの範囲内」だけです。

・ブルーの範囲の設定方法は「(2)Nav Mesh Agentの設定」を参照

スクリーンショット 2016-04-27 16.05.32


④ターゲットを設定する

・プレーヤーを追いかけさせたい敵に「ChaseEnemy」スクリプトをドラッグ&ドロップ。

スクリーンショット 2016-04-28 12.25.03

「Target」欄に「Tank(もしくはPlayer)」を設定

スクリーンショット 2016-04-28 12.25.42

ここまでできたら「再生ボタン」を押してみましょう。

敵がPlayerの位置に近づいてきたら成功です。

*敵が追いかけてくるスピードを調整してみましょう。

スクリーンショット 2016-05-23 17.19.19


(障害物を避ける機能)

今の設定では「敵はまっすぐ最短距離で」Tnak(プレーヤー)のところに近づいてきます。

これを途中に障害物がある場合には、うまく「回り込み」ながら近づいてくるようにしてみます。

・避けさせたいオブジェクトを選択。

「Add Component」「Nav Mesh Obstacle」コンポーネントをつけてください。

「Size」を調整して、少しだけ大き目にしましょう。

・これで敵はこの枠をうまく避けながら近づいてくるようになります。

スクリーンショット 2016-07-08 13.39.41