ナビゲーション メッシュ
オフメッシュ リンク

キャラクターナビゲーションの有効化

ナビメッシュをセットアップし他とはキャラクターが使用できる準備をする必要があります。Nav Mesh Agent コンポーネントは経路探索およびキャラクターの制御の両方をハンドリングします。スクリプトでナビゲーションを目的地点の設定と同じくらい簡単に記述するのみです。ナビメッシュ エージェントが自動的にその後の処理をハンドリングします。

ナビメッシュ エージェント コンポーネントの追加はスクリプトまたはエディターから行ないます。(メニュー: Component -> Navigation -> Nav Mesh Agent)。コンポーネントの様々なプロパティは ナビメッシュエージェント で詳細に説明がありますが,試す際にはデフォルト値のままで十分です。

スクリプトでは,直接にアクセスするプロパティはないため NavMeshAgent コンポーネントへの参照を取得します:-

var agent: NavMeshAgent = GetComponent.<NavMeshAgent>();

次に,キャラクターを動作させるため SetDestination を一回呼び出しをします:-

agent.SetDestination(targetPoint);

目的地点はワールド座標で指定します。ナビゲーションシステム は自動的にナビメッシュにもっとも近い地点を見つけるため,ターゲット地点が正確にメッシュ表面になくとも問題ありません。

当然ナビゲーション システムによりゲームロジックの全てをハンドリングできないので,初めに目的地点を適切に選ぶ方法が必要です。これはゲームの特性に強く依存し,良くある方法は次のとおりです。

  • NPC キャラクターをプレイヤーの位置に移動すると攻撃を開始
  • キャラクターを事前配置した空のゲームオブジェクトで示すターゲットへ向かわせる(例.ビル出口や宝箱の場所)
  • マウスによりマップ地点へ移動
ナビゲーション メッシュ
オフメッシュ リンク