tgoop.com/unsafecsharp/103
Last Update:
Как работает FixedUpdate.
Unity предоставляет нам 3 варианта update: Update, LateUpdate и FixedUpdate.Update
- этот метод вызывается настолько часто, насколько это возможно, проще говоря while (true) { Update(); }
. Если включен vsync
или установлен target fps, то будет задержка между вызовами, чтобы удовлетворить условиям. По сути можно считать. что Update - это логика кадра.LateUpdate
- вторая итерация Update
, вызывается столько же раз, сколько и Update
, но всегда после.
А вот FixedUpdate
имеет совершенно иную логику вызова. Он может вызываться 10 раз за кадр, а может не вызваться ни разу. FixedUpdate
гарантирует, что вызовется фиксированное количество раз за секунду, а вот сколько именно вызовов будет - зависит от вашего fps. Поэтому, например, Unity предлагают использовать FixedUpdate для расчета физики, а, например, для перемещения камеры или получения инпута его лучше не использовать. Но получается, что если с прошлого вызова прошло 10 секунд, а шаг у нас, например, 33мс, то вызовется FixedUpdate в текущем кадре аж 300 раз.
А теперь самое интересное, что логика одного вызова может быть больше, чем 33мс. Если такое произойдет, то будет бесконечный вызов FixedUpdate. И вот чтобы приложение продолжало работать - есть ограничение в max allowed timestep, которое и решает этот сценарий.
#unityloop
BY Unity: Всё, что вы не знали о разработке
Share with your friend now:
tgoop.com/unsafecsharp/103