Сделал 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
Я запускаю много объектов, многие летят, некоторые на одном месте стопорятся и стоят там вечно на месте....
скорее всего что-то в настройке агента, но я уже все по всякому крутил, посоветуйте как его правильно настроить, мне всего лишь нужно чтобы они перемещались от А до В с монотонной скоростью...
Никак не доходит как его правильно настроить, да и почему одни летят до цели а другие стопорятся....