Вступить в клуб →
сложнаявопросКорутины, async/await и UniTask

Поиск пути перенесли в корутину, а спайк в 400 мс остался

IEnumerator FindPathRoutine(Vector2Int from, Vector2Int to)
{
    var path = aStar.Solve(from, to); // ~400 мс на большой карте
    yield return null;
    unit.Follow(path);
}

Раньше Solve вызывался прямо в Update, и игра подвисала. После переноса в корутину профайлер показывает тот же кадр на 400 мс. Какой вывод и что делать?

  • Корутина в том же потоке; дробить или в фон
  • Нужно yield return null перед вызовом Solve
  • Запускать корутину из FixedUpdate
  • Кэшировать WaitForEndOfFrame в поле

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела