Если я правильно понял, то даже по достижению targetPosition объект все равно считает эти координаты своей целью, пока ему не будут переданы другие, неистово стараясь добраться до цели. Для этого предусмотрены команды agent.Stop() и agent.Resume()
Так вот в update() я проверяю
Синтаксис:
Используется csharp
if (agent.remainingDistance <= agent.stoppingDistance && agent.remainingDistance !=0) {
Debug.Log(agent.remainingDistance);
agent.Stop();
body.velocity = Vector3.zero;
}
Debug.Log(agent.remainingDistance);
agent.Stop();
body.velocity = Vector3.zero;
}
если расстояние до цели меньше или равно расстоянию остановки (объект добрался до цели) - то остановить его. Также я попробовал прописать body.velocity = Vector3.zero; в попытках полностью прекратить движение объекта.
Собственно проблема в том, что при всем этом юниты все равно, пусть немного, но меняют свое положение по осям X,Z.
Может, кто-то сталкивался с этой проблемой, или просто скажет мне в чем я дурак.
P.S. физический материал с вменяемым трением прописывать пробовал - вообще ничего не меняется.
P.S.S а еще иногда объекты в попытках пройти к цели начинают с огромной скоростью летать по карте, и я совсем не понимаю в чем триггер этого бага