Сообщение от WISHMASTER35
Скажите, yield return new WaitForSeconds(0.01f); прервет работу ровно на 0.01 секунды? Или может на более долгое время прервать, если игра будет тормозить?
Что бы выполнение сложного алгоритма разделить на несколько кадров обязательно в самом алгоритме вставлять строчку yield return new WaitForSeconds?
Хочется сделать, чтобы не тормозила при выполнении этого алгоритма и в алгоритм ничего лишнего не писать.
|
Нет, к сожалению, не ровно. Может прерваться как на 0.01, так и на 0.02, или вообще 0.038 какое-нибудь. Юнити выполняет все скрипты и сопрограммы в одном потоке, по этому прерывание зависит от суммарного количества выполняющихся скриптов в кадре.
Очень хорошее объяснение того, как работают корутины, есть тут:
http://answers.unity3d.com/questions...confusion.html
Прям пошаговое объяснение процесса.
К слову, только FixedUpdate выполняется строго по времени.