FixedUpdate - что это такое и с чем его едят?
|
|
EchoIT | Дата: Вторник, 02 Октября 2012, 14:19 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Собственно, вот причина того, почему я решил обратить внимание на остальные функции типа Update(FixedUpdate и LateUpdate) помимо самого Update: При использовании Update скорость выполнения скриптов всегда разная - если запустить игру на низком качестве графики и разрешения - всё будет работать раз в десять быстрее, чем на максимальных, что не есть хорошо. Я хочу фиксировать скорость выполнения всех скриптов, чтобы она была всегда одинакова и не зависела от FPS. Решил почитать об остальных двух функциях типа Update, и вот, что я вычитал: Quote FixedUpdate() -Данная функция вызывается каждый раз при расчете физических показателей. Все расчеты физики следует проводить именно в ней. LateUpdate() - Данная функция вызывается после выполнения сценария функции Update(). Собственно, LateUpdate мне точно не подходит, а вот FixedUpdate - не совсем понятное описание, но вроде то, что нужно, да и название с нужной мне функцией созвучно (...фиксировать скорость выполнения... - FixedUpdate()), и вот я решил поподробнее узнать о этой функции. Попробовал в игре - при высоком FPS скорость действительно такая, как была и на нормальном FPS, что радует. Вот, наконец-то, и мой вопрос: Что вы(спрашиваю только у опытных разработчиков Unity3d) можете сказать по поводу функции FixedUpdate, как её правильно использовать, когда её нужно использовать и можно ли вообще её использовать во всех скриптах для стабилизации скорости выполнения оных?
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Вторник, 02 Октября 2012, 14:20 |
|
| |
IIyxMASTER | Дата: Вторник, 02 Октября 2012, 17:07 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| http://docs.unity3d.com/Documentation/ScriptReference/Time-deltaTime.html Для независимости от фпс домнажай на time.deltaTime
|
|
| |
iNikit | Дата: Вторник, 02 Октября 2012, 17:09 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Update выполняется не так аккуратно, поэтому для физ. расчётов используют fixedupdate
Самый лучший юзер GCUP :3
|
|
| |
Левша | Дата: Вторник, 02 Октября 2012, 18:41 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Фикса вызывается через равные промежутки времени, величина которых настраиваема. Это дает развязку (независимость от fps).
PS. Значение ее раздуто... с таким же успехом можно включить vSinc и работать в Update().
X.cor.R (Prologue)
Сообщение отредактировал Левша - Вторник, 02 Октября 2012, 18:42 |
|
| |
EchoIT | Дата: Среда, 03 Октября 2012, 10:11 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Спасибо за ответы!
Долгожданный анонсик: State of War
|
|
| |
karuy | Дата: Среда, 03 Октября 2012, 10:33 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Quote (Левша) PS. Значение ее раздуто... с таким же успехом можно включить vSinc и работать в Update(). С vSync у тебя может быть 60фпс и 15фпс, а то уже разсинхрон, deltaTime нужно всегда учитывать.
|
|
| |