Физика в Unity — основа движения, столкновений и “живого” поведения объектов. Если понимать, как работают Rigidbody, Collider и гравитация, можно избежать типичных багов: проваливания сквозь пол, дёргания, странных отскоков и нестабильного управления.
1. Rigidbody — кто участвует в физике
Rigidbody делает объект физическим телом. Unity начинает учитывать для него:
- массу
- скорость
- инерцию
- силы и импульсы
- влияние гравитации
Без Rigidbody объект сдвигается только вручную через Transform, но не “живет” в физическом мире полноценно.
Ключевые параметры:
- Mass — масса объекта
- Drag — сопротивление движению
- Angular Drag — сопротивление вращению
- Use Gravity — включить гравитацию
- Is Kinematic — объект не подчиняется физике, но может участвовать в коллизиях
Важно: для физического перемещения лучше использовать AddForce() или Rigidbody.MovePosition(), а не прямое изменение transform.position.
2. Collider — зона столкновения
Collider определяет форму объекта для столкновений. Популярные варианты:
Box ColliderSphere ColliderCapsule ColliderMesh Collider
Если у объекта нет коллайдера, другие объекты “не увидят” его как препятствие.
Практика:
- для персонажей чаще используют
Capsule Collider - для коробок —
Box Collider - сложные формы через
Mesh Colliderлучше применять осторожно, потому что это тяжелее по производительности
3. Rigidbody + Collider = физическое взаимодействие
Чтобы столкновения работали корректно, обычно нужно:
- минимум один объект с
Rigidbody - у обоих объектов должны быть
Collider
Пример:
- мяч с
Rigidbody+Sphere Colliderпадает на пол - пол имеет
Box Collider - результат — мяч сталкивается с поверхностью и не проходит сквозь неё 🧱
4. Гравитация в Unity
По умолчанию гравитация направлена вниз по оси Y. Стандартное значение:
Edit → Project Settings → Physics
Обычно это Y = -9.81, что имитирует земное притяжение.
Гравитацию можно:
- отключить у конкретного объекта через Use Gravity
- изменить глобально для всей сцены
- компенсировать силами, если нужен полёт, космос или платформер с особой физики 🚀
5. Частые ошибки новичков
- Двигают объект через
Transform, хотя на нёмRigidbody - Забывают добавить
Collider - Используют
Mesh Colliderвезде подряд - Ставят Is Kinematic, а потом ждут обычной физики
- Меняют физические объекты в
Update(), а не вFixedUpdate()
Правильно:
- игровую логику — в
Update() - физику — в
FixedUpdate()
6. Что важно для стабильной физики
- не делайте коллайдеры слишком сложными
- проверяйте масштаб объектов
- избегайте резких телепортаций физического тела
- настраивайте Interpolation, если движение выглядит рвано
- используйте Continuous Collision Detection для быстрых объектов, чтобы они не пролетали сквозь стены ⚠️
Вывод
В Unity физика строится просто:
Rigidbodyотвечает за физическое поведениеCollider— за столкновения- гравитация — за естественное падение и движение вниз
Понимание этой связки помогает делать управляемые, стабильные и реалистичные механики без хаоса в сцене 🧠
📌 Загляните в подборку каналов про IT — там много полезного по Unity, разработке игр, backend, frontend и карьере в технологиях.