Найти в Дзене
Геймдев после 30

Основы Unity # 2 – метод FixedUpdate()

FixedUpdate() – стабильность и порядок в физике вашей иры. Привет, Коллеги! В прошлой статье мы разобрали метод Update() – основе игровой логики Unity. Сегодня поговорим о его брате-близнеце, с которым часто возникает путаница: о методе FixedUpdate(). Если Update живет в мире фреймрейта и хаоса, то FixedUpdate – это мир строгого порядка и предсказуемости. Меня зовут Андрей. Я учусь на юнити-программиста, осваиваю геймдизайн и веду блог «Геймдев после 30». Чтобы стать настоящим профессионалом, недостаточно просто писать код по шаблону. Важно понимать, как он работает изнутри. Такой поход заложит прочный фундамент для роста и поможет создавать технически качественные игры. FixedUpdate вызывается с строго фиксированной частотой, независящей от FPS. По умолчанию он работает каждые 0.02 секунды (50 раз в секунду). Это частота обновления физического движка Unity. Представьте: Всё, что связано с физикой (Rigidbody), должно обрабатываться в FixedUpdate: Давайте создадим шар, который двигается
Оглавление

FixedUpdate() – стабильность и порядок в физике вашей иры.

Привет, Коллеги! В прошлой статье мы разобрали метод Update() основе игровой логики Unity. Сегодня поговорим о его брате-близнеце, с которым часто возникает путаница: о методе FixedUpdate().

Если Update живет в мире фреймрейта и хаоса, то FixedUpdate это мир строгого порядка и предсказуемости.

Меня зовут Андрей. Я учусь на юнити-программиста, осваиваю геймдизайн и веду блог «Геймдев после 30». Чтобы стать настоящим профессионалом, недостаточно просто писать код по шаблону. Важно понимать, как он работает изнутри. Такой поход заложит прочный фундамент для роста и поможет создавать технически качественные игры.

1. FixedUpdate: Стабильность физики.

FixedUpdate вызывается с строго фиксированной частотой, независящей от FPS. По умолчанию он работает каждые 0.02 секунды (50 раз в секунду). Это частота обновления физического движка Unity.

Представьте:

  • Update это художник, который рисует кадры так быстро, как может.
  • FixedUpdate это инженер, который проверяет и рассчитывает все физические законы строго по расписанию.

2. Когда использовать FixedUpdate?

Всё, что связано с физикой (Rigidbody), должно обрабатываться в FixedUpdate:

  • Применение сил (AddForce()).
  • Перемещение физических объектов (Rigidbody.MovePosition()).
  • Работа с джойстиками, которые управляют физическим телом.
  • Любые расчеты, где важна детерминированность (одинаковый результат на разных FPS).

3. Практический пример: Движение шара.

Давайте создадим шар, который двигается с помощью физики. Создайте в редакторе Unity сферу с компонентом Rigidbody и прикрепите на него нижеприведенный скрипт.

-2

Мы будем считывать ввод в Update, но применять силу в FixedUpdate. Что в итоге получилось:

  1. Плавный ввод: Клавиши считываются каждый кадр, поэтому управление чувствуется отзывчивым.
  2. Стабильная физика: Сила применяется с фиксированным интервалом. Даже если FPS просядет, шар не полетит с другой скоростью и не провалится сквозь стену, так как физический движок продолжит считать столкновения предсказуемо.

4. Частая ошибка новичков.

Ни в коем случае не проверяйте ввод (например, Input.GetKeyDown) прямо в FixedUpdate. Из-за того, что он вызывается реже, чем Update, движок может пропустить момент нажатия клавиши!

5. Коротко главное:

  • FixedUpdate – ваш инструмент для всего, что связано с Rigidbody и физикой.
  • Частота вызова фиксирована и настраивается в Edit > Project Settings > Time.
  • Схема работы: Update (собрали ввод) → FixedUpdate (применили к физике).

В следующей статье разберем третьего кита Unity LateUpdate(), который отвечает за действия после всего обновления.

Коллеги, если эта статья была вам полезна, то порекомендуйте ее своим друзьям – это будет для меня лучшей наградой и мотивацией для дальнейшей работы. Если остались вопросы, то пишите их в комментариях и я обязательно отвечу.

P.S.- больше контента вы можете найти в моей группе в VK.