Version: 2017.1
Обзор физики
Коллайдеры (Colliders)

Rigidbodies (твёрдые тела)

Rigidbody - это основной компонент, подключающий физическое поведение для объекта. С прикреплённым Rigidbody, объект немедленно начнёт реагировать на гравитацию. Если добавлен один или несколько компонентов Collider, то при коллизиях (столкновениях) объект будет передвигаться.

Так как компонент Rigidbody управляет перемещением объекта, к которому он прикреплён, вам не следует пытаться воздействовать на объект из кода с помощью изменения таких свойств Transform, как position и rotation. Вместо этого вам следует применять силы для того, чтобы толкать объект и позволить физическому движку рассчитать результаты.

Существуют случаи, при которых вы можете захотеть, чтобы у объекты был Rigidbody, но физический движок не управлял его движением. Например, вы можете пожелать управлять своим персонажем напрямую из кода, но при этом хотите, чтобы он взаимодействовал с триггерами (см. Триггеры ниже). Этот тип не физического движения, производимый с помощью кода, называется кинематическим движением. У компонента Rigidbody есть свойство Is Kinematic, которое может исключить объект из-под контроля физического движка, и позволить перемещать его кинематически из скрипта. Значение Is Kinematic можно менять из кода, чтобы включать или отключать физику для объекта, но эта возможность требует дополнительных ресурсов и должна использоваться как можно реже.

См. страницы справки по Rigidbody и Rigidbody 2D для дополнительной информации о настройках и опциях по скриптингу этих компонентов.

Засыпание

When a Rigidbody is moving slower than a defined minimum linear or rotational speed, the physics engine assumes it has come to a halt. When this happens, the GameObject does not move again until it receives a collision or force, and so it is set to “sleeping” mode. This optimisation means that no processor time is spent updating the Rigidbody until the next time it is “awoken” (that is, set in motion again).

Когда твёрдое тело перемещается со скоростью, меньшей определённого минимального порога, физический движок предполагает, что оно остановилось и находится в покое. При этом, объект не будет вновь двигаться до тех пор, пока с ним не произойдёт столкновение или пока к нему не применят силу, так что он уходит в “спящий” режим. Эта оптимизация означает, что на объект не будут расходоваться ресурсы CPU, пока его вновь не “разбудят” (т.е. не вновь не приведут в движение). По многим причинам засыпание и пробуждение твёрдых тел происходит прозрачно. Однако, иногда объект не удаётся разбудить, если в него или от него переместится статичный коллайдер (тот, что без твёрдого тела) изменяя положение трансформации. Это может привести, скажем, к висящему в воздухе твёрдому телу, когда пол под ним сдвинулся вниз. В таких случаях объект можно разбудить принудительно, с помощью функции WakeUp. См. страницы про компоненты Rigidbody и Rigidbody 2D для дополнительной информации о засыпании.

Обзор физики
Коллайдеры (Colliders)
Copyright © 2020 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961