1. 程式人生 > >Unity3D navMesh如何判斷到達目標點

Unity3D navMesh如何判斷到達目標點

  1. 設定一個比較小的閾值,當前位置和targetPos之間距離小於該閾值,可認為到達終點。
  2. navMeshAgent.hasPath, 當有路徑的時候為true,當到達終點或初始狀態為false
  3. navMeshAgetn.path.corners.Length獲得的是當前路徑擁有的頂點數。當初始狀態或者到達目標點後,獲得的Length數為1;當>1的時候說明還沒有到達終點。

需要注意的是:
當我們通過以下任一方式設定目標點後
**navMeshAgent.destination=XXX
navMeshAgent.SetDestination(XXX)**
navMeshAgent.path.corners和navMeshAgent.hasPath都不會立即重新整理。必須等待一幀後才會重新整理。因此使用法二或者法三進行判定的時候要特別注意。