Показать сообщение отдельно
Старый 30.05.2012, 10:49   #314
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Вопросы от новичка

Сообщение от 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 выполняется строго по времени.
__________________
(Offline)
 
Ответить с цитированием