NavMesh をベイクした後は、シーン内を動き回るキャラクターを作成します。手始めにシリンダーでプロトタイプのエージェントを作成し、動きを設定していきます。キャラクターは NavMeshAgent コンポーネントと簡単なスクリプトを使って実装することができます。
まずは、キャラクターを作成してみましょう:
これでコマンドを受信できるシンプルなエージェントのセットアップが完了しました。
エージェントを実際に動かすときには、キャラクターの大きさと速度を適切な値に設定しましょう。
NavMesh Agent コンポーネントは、経路探索とキャラクターの移動制御の両方を処理します。スクリプトで、ナビゲーションは目的地となる位置を設定するだけで簡単に行えます。エージェントは目的地へ行くためにできることすべてを駆使して対処します。
// MoveTo.cs
using UnityEngine;
using UnityEngine.AI;
public class MoveTo : MonoBehaviour {
public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.destination = goal.position;
}
}
次に、指定した目的地をキャラクターに伝えるためのスクリプトと、目的地となる Sphere を作成します。
MoveTo.cs
)を作成し、上記にあるスクリプトへと置き換えます。要するに、スクリプトで NavMesh Agent コンポーネントへの参照を取得し、エージェントに動きを設定するために、位置をその destination プロパティに指定するだけです。ナビゲーションの使いかた ではエージェントを使った一般的なゲームシナリオの作り方の例を紹介します。