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都不会立即刷新。必须等待一帧后才会刷新。因此使用法二或者法三进行判定的时候要特别注意。

你可能感兴趣的:(Unity3D)