遇到问题,我想我知道为什么会这样,但不是解决问题的正确方法。
我的 Nav Mesh 代理在一个圆圈中选择一个随机点并朝它走去一段随机时间,当该位置有效时,它看起来像这样正常。
但是每隔一段时间,代理就会选择一个它不能走路的地方,然后在分配给它步行的时间里站在那里,然后再选择另一个地方并再次移动,而它不能走路时就会发生这种情况。
我知道它不移动的原因是路径无效(或者至少我认为这就是原因。)
但我尝试过实施这样的事情,但没有运气。
private void moveTowardsWaypoint()
{
agent.ResetPath();
Vector3 newPosition = new Vector3(randomDirection.x, 0, randomDirection.y) + transform.position;
NavMeshPath path = new NavMeshPath();
Debug.Log(agent.CalculatePath(newPosition, path));
if(agent.CalculatePath(newPosition, path) == false)
{
agent.ResetPath();
StopCoroutine(walkTime());
pickWayPoint();
}
else
{
agent.SetDestination(newPosition);
}
}