(今回はこんなことを学びます)
・敵が自動的に追いかけてくる機能の作成
・「Nav Mesh Agent」について
(1)スクリプトを作成する
・まず、「Hierarchy」で「Create」→「3D Object」→「Sphere」で新たにオブジェクトを1つ作成してください。
・オブジェクトの名前は「Enemy」に変更しておきます。
・「大きさ」と「色」は自由に設定しましょう。
・「位置」はBallと離れた所にセットします。
・次に、「C# Script」を作成し、こちらの名前も「Enemy」に変更します。
・「Enemy」スクリプトには下記のコードを記載しましょう。
using UnityEngine; using System.Collections; public class Enemy : MonoBehaviour { // ★変数を定義する(データを入れるための箱を作る) public GameObject target; private NavMeshAgent agent; // Use this for initialization void Start () { // ★定義した変数(箱)の中にデータを入れる agent = GetComponent<NavMeshAgent>(); } // Update is called once per frame void Update () { // ★このコードを記載する agent.destination = target.transform.position; } }
・スクリプトが作成できたら、「Hierarchy」の「Enemy」オブジェクトにドラッグ&ドロップします。
・「Enemy」オブジェクトを選択し、「Target」に「Ball」をセットします。
(2)Nav Mesh Agentの設定
スクリプトの設定までは完了しましたが、まだこの段階では「再生ボタン」を押しても、敵はTarget(Ball)を追いかけません。
次に、「敵が移動できる場所の設定」と「追いかける機能の追加」を行います。
(敵が移動できる場所の設定)
・「Hierarchy」で「Floor」オブジェクトを選択
・「Inspector」で「Static」にチェックを入れる。
・「Floor」を選択した状態で「Window」をクリック。
・「Navigation」を選択してクリック。
・「Bake」をクリック
すると「Floor」の上に「ブルーで囲まれた部分」が出現します。
この部分が敵が移動できる場所となります。
(追いかける機能の追加)
次に、敵に追いかける機能を追加します。
・「Hierarchy」で「Enemy」オブジェクトを選択
・「Inspector」で「Add Component」をクリック
・「Navigation」を選択してクリック
・「Nav Mesh Agent」をクリック
これで「Enemy」に追いかける機能が追加されました。
・「再生ボタン」を押してみましょう。
EnemyがBallの方に寄ってくれば成功です。