-------Ситуация-----
ГО с навмэшагентом отправляется по вейпоинтам.
При подходе к каждому вейпоинту, даётся новое setDestination и вызывается корутина, для проверки дошёл/нет.
Когда ГО подходит к очередному вейпоинту - срабатывает if через else и ГО получает следующий вейпоинт. Т.е. if -работает.
Срабатывают дебаги Debug.Log ("Path has"); Debug.Log ("<10"); Debug.Log ("!=");
------Проблема------
Но когда подходим к последней точке ,те. numbPoint == (spwn.dictWays[numbRoute].Count - 1),
происходит Зависон прям в момент проверки при подходе ГО к последней точке.
Т.е. Debug.Log ("before siege"); - не срабатывает.
Но ведь должен. Не понимаю, дебаг не успевают вывезтись на экран или же инструкции до них даже не доходит.
Синтаксис:
Используется csharp
IEnumerator MoveTo (Vector3 vect){
yield return null;
yield return null;
navAgent.SetDestination(vect);
yield return null;
isBusy = true;
while (!navAgent.hasPath) { // ждем просчета пути, т.е. когда navMesh просчитает путь
yield return null;
yield return null;
}
Debug.Log ("Path has");
while (navAgent.hasPath) { // ждем окончания движения, когда юнит приедет в точку назначения
yield return null;
yield return null;
while (navAgent.remainingDistance > 10){ // ждём когда до точки будет < 10
yield return null;
yield return null;
}
yield return null;
yield return null;
Debug.Log ("<10");
if (numbPoint == (spwn.dictWays[numbRoute].Count - 1)){
Debug.Log ("before siege");
curStatus = Status.FindSiege;
yield break;
} else {
Debug.Log ("!=");
curStatus = Status.FindRoute;
yield break;
}
}
yield return null;
yield return null;
isBusy = false;
yield break;
}
Может у меня мозг уже затуманился и я чёт не вижу?)