Имея проблему, я думаю, что знаю, почему это происходит, но не знаю, как правильно решить проблему.
Мой агент 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);
}
}