Суббота, 19 Октября 2019, 13:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » FixedUpdate - что это такое и с чем его едят? (Ищу ответ на вопрос о проблемах функций Update в Unity3d)
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(). smile


X.cor.R (Prologue)

Сообщение отредактировал Левша - Вторник, 02 Октября 2012, 18:42
EchoITДата: Среда, 03 Октября 2012, 10:11 | Сообщение # 5
старожил
Сейчас нет на сайте
Спасибо за ответы! smile

Долгожданный анонсик: State of War
karuyДата: Среда, 03 Октября 2012, 10:33 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Quote (Левша)
PS. Значение ее раздуто... с таким же успехом можно включить vSinc и работать в Update().

С vSync у тебя может быть 60фпс и 15фпс, а то уже разсинхрон, deltaTime нужно всегда учитывать.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » FixedUpdate - что это такое и с чем его едят? (Ищу ответ на вопрос о проблемах функций Update в Unity3d)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг