Zefirot
@Zefirot

Почему объекты иногда застревают navmesh?

Сделал 2 точки А и В внизу карты и вверху, перед запуском проверяю путь
public bool GetAccessPath(Vector3 TargetA, Vector3 TargetB){
        bool ret = false;
        MeshAgentPath = new NavMeshPath();
        NavMesh.CalculatePath(TargetA, TargetB, NavMesh.AllAreas, MeshAgentPath);
        if(MeshAgentPath.status == NavMeshPathStatus.PathComplete){
            TargetCell = TargetB;
            MeshAgent = GetComponent<NavMeshAgent>();
            MeshAgent.updateRotation = false;
            MeshAgent.updateUpAxis = false;
            MeshAgent.Warp(TargetA);
            MeshAgent.SetDestination(TargetCell);
            ret = true;
            }
        return ret;
        }

Создаю объект
++Num;
Obj[Num] = Instantiate(cell) as Cell;
Obj[Num].transform.SetParent(Cells.transform);
Obj[Num].GetComponent<NavMeshAgent>().speed = Speed;
if(!Obj[Num].GetAccessPath(TargetA, TargetB)){ Obj[Num].gameObject.SetActive(false); }

то есть если путь есть то вперед, если нет то объект отключается, при запуске так же задается скорость Speed рандомно (0.2-3), в апдейте только проверяется не достиг ли цели
if(Vector3.Distance(transform.position, TargetCell) > 0.5f){  .....

Quality =none, Priority =0, Auto braking = false, Ang speed = 120, Acceleration = 8, radius 0.1, height 0.1
Agent => radius = 0.05, height = 1, step height = 0.001, max slope =45
Я запускаю много объектов, многие летят, некоторые на одном месте стопорятся и стоят там вечно на месте....
скорее всего что-то в настройке агента, но я уже все по всякому крутил, посоветуйте как его правильно настроить, мне всего лишь нужно чтобы они перемещались от А до В с монотонной скоростью...
Никак не доходит как его правильно настроить, да и почему одни летят до цели а другие стопорятся....
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы