NavMeshとは?
ナビゲーションシステムによって、シーンのジオメトリから⾃動で⽣成されるナビゲーションメッシュを使⽤して、ゲーム世界の中を知的に動くキャラクターを作成することができる。
Unity公式より抜粋
公式の説明だと分かり難いが、目的地まで障害物を避けつつ移動することができるようなAI?的なもの。
移動できる範囲は予めベイクしなければならない。
使い方
1. NavmeshをBakeして移動範囲を決定。ただし障害物はStaticでなければならない。
2. 移動させたい対象にNavmesh Agentコンポーネントを追加する。
導入
Window > Navigation > [Bake]
Staticオブジェクトを障害物と認識し、移動範囲がベイクされる。
目的地まで移動させたい対象にNavmesh Agentを追加します。
AddComponent > Navigation > Nav Mesh Agent
目的地はスクリプトで決定します。
using UnityEngine.AI;
を忘れずに!
public GameObject target; void Start() { var navMeshAgent = GetComponent<NavMeshAgent>(); navMeshAgent.SetDestination(target.transform.position); }
コメント