Поиск пути перенесли в корутину, а спайк в 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 в поле
