Unity 6.3
0 онлайн 26 гостей 3 в системе
Вход

Rigidbody

класс в UnityEngine

Наследуется от:Component

Выполнено в:UnityEngine.PhysicsModule

Описание

Контроль положения объекта с помощью физического моделирования.

Добавление компонента Rigidbody к объекту передаёт управление его движением физическому движку Unity. Даже без дополнительного кода объект Rigidbody будет падать под действием силы тяжести и реагировать на столкновения с другими объектами, если у него также присутствует подходящий компонент Collider.

Rigidbody также предоставляет API скриптов, который позволяет прикладывать к объекту силы и управлять им физически реалистичным образом. Например, поведение автомобиля можно задать через силы, прикладываемые колёсами. На основе этих данных физический движок рассчитывает большинство остальных аспектов движения автомобиля, благодаря чему тот реалистично ускоряется и правильно реагирует на столкновения.

В скрипте рекомендуется прикладывать силы и изменять настройки Rigidbody в функции FixedUpdate, а не в Update, которая используется для большинства других задач покадрового обновления. Причина в том, что физика обновляется через фиксированные интервалы времени, не совпадающие с обновлением кадров. FixedUpdate вызывается непосредственно перед каждым обновлением физики, поэтому внесённые в ней изменения обрабатываются сразу.

На начальном этапе работы с Rigidbody часто кажется, что игровая физика работает «в замедленном режиме». На самом деле причина заключается в масштабе моделей. Стандартные настройки силы тяжести предполагают, что одна единица мирового пространства соответствует одному метру. В играх без физического моделирования не так важно, что длина всех моделей составляет 100 единиц, но физический движок будет считать их очень крупными объектами. Если объекты, которые должны быть маленькими, имеют большой масштаб, они кажутся падающими очень медленно: физический движок считает, что огромные объекты преодолевают огромные расстояния. Поэтому старайтесь задавать объектам масштаб, близкий к реальному (например, длина автомобиля должна составлять около 4 единиц, то есть 4 метров).

Свойства

Свойство Описание
angularDampingУгловая амортизация объекта.
angularVelocityВектор угловой скорости жесткого тела, измеренный в радианах в секунду.
automaticCenterOfMassАвтоматический расчет центра массы.
automaticInertiaTensorАвтоматический расчет тензора инерции.
centerOfMassЦентр массы относительно источника преобразования.
collisionDetectionModeРежим обнаружения столкновений Rigidbody.
constraintsКонтролирует, какие степени свободы разрешены для моделирования этого Rigidbody.
detectCollisionsДолжно ли быть включено обнаружение столкновений? (По умолчанию всегда включено).
excludeLayersДополнительные слои, которые все коллайдеры, прикрепленные к этому Rigidbody, должны исключать при решении, может ли Collider вступить в контакт с другим Collider.
freezeRotationУправляет тем, будет ли физика изменять вращение объекта.
includeLayersДополнительные слои, которые все коллайдеры, прикрепленные к этому Rigidbody должны включать при решении, может ли Collider вступить в контакт с другим Collider.
inertiaTensorТензор инерции этого тела, определяемый как диагональная матрица в системе отсчета, расположенной в центре массы этого тела и вращающейся на Rigidbody.inertiaTensorRotation.
inertiaTensorRotationВращение тензора инерции.
interpolationИнтерполяции обеспечивает способ управлять появлением джиттера в движении вашего Rigidbody GameObjects во время выполнения.
isKinematicУправляет влиянием физики на rigidbody.
linearDampingЛинейное ослабление линейной скорости Rigidbody.
linearVelocityВектор линейной скорости жесткого тела. Он представляет собой скорость изменения положения Rigidbody.
massМасса жесткого тела.
maxAngularVelocityМаксимальная угловая скорость тела в радианах в секунду. (По умолчанию 7) диапазон { 0, бесконечность }.
maxDepenetrationVelocityМаксимальная скорость твёрдого тела при выходе из состояния проникновения.
maxLinearVelocityМаксимальная линейная скорость жесткого кузова, измеренная в метрах в секунду.
positionПоложение жесткого кузова.
rotationВращение Rigidbody.
sleepThresholdНормальный энергетический порог массы, ниже которого объекты начинают спать.
solverIterationssolverIterations определяет точность разрешения Rigidbody соединений и контактов столкновения. Переопределяет Physics.defaultSolverIterations. Должно быть положительным.
solverVelocityIterationssolverVelocityIterations влияет на то, как точно Rigidbody соединения и контакты столкновения разрешаются. Переопределяет Physics.defaultSolverVelocityIterations. Должно быть положительным.
useGravityУправляет влиянием силы тяжести на это rigidbody.
worldCenterOfMassЦентр масс жесткого тела в мировом пространстве (только для чтения).

Открытые методы

Метод Описание
AddExplosionForceПрименяет силу к жесткому телу, которая имитирует эффекты взрыва.
AddForceДобавляет силу к Rigidbody.
AddForceAtPositionПрименяет силу на позицию. В результате этого будет применять крутящий момент и силу на объект.
AddRelativeForceДобавляет силу к жесткому телу относительно его системы координат.
AddRelativeTorqueДобавляет крутящий момент к жесткому телу относительно его системы координат.
AddTorqueДобавляет крутящий момент к жесткому корпусу.
ClosestPointOnBoundsНаиболее близкая точка к предельной решетке присоединенных коллайдеров.
GetAccumulatedForceВозвращает силу, которую Rigidbody накопил до шага моделирования.
GetAccumulatedTorqueВозвращает крутящий момент, который Rigidbody накопил до шага моделирования.
GetPointVelocityСкорость жесткого тела в точке worldPoint в глобальном пространстве.
GetRelativePointVelocityСкорость относительно жесткого тела в точке relativePoint.
IsSleepingНеужели жесткое тело спит?
MoveПеремещает Rigidbody в позицию и вращает Rigidbody в поворот.
MovePositionПеремещает кинематическую Rigidbody в направлении позиции.
MoveRotationПоворачивает rigidbody на вращение.
PublishTransformПрименяет положение и вращение Rigidbody к соответствующему компоненту Transform.
ResetCenterOfMassСброс центра масс жесткого тела.
ResetInertiaTensorСброс значения тензора инерции и вращения.
SleepПринуждает жесткое тело спать до пробуждения.
SweepTestТестирует, столкнется ли rigidbody с чем-либо, если его переместить через Scene.
SweepTestAllКак Rigidbody.SweepTest, но возвращает все попадания.
WakeUpЗаставляет жесткое тело проснуться.

Сообщения

Сообщение Описание
OnCollisionEnterOnCollisionEnter вызывается, когда этот коллайдер/жесткое тело начинает касаться другого коллайдера/жесткого тела.
OnCollisionExitOnCollisionExit вызывают, когда коллайдер/жесткое тело перестает касаться другого коллайдера/жесткого тела.
OnCollisionStayOnCollisionStay вызывается один раз в кадре для каждого Collider или Rigidbody, который касается другого Collider или Rigidbody.
Унаследованные члены 4

Свойства

СвойствоОписание
gameObjectGameObject, к которому прикреплен данный компонент. Компонент всегда прикрепляется к игровому объекту.
tagТег этого игрового объекта.
transformTransform прикреплен к этому GameObject.
transformHandleTransformHandle этого GameObject.
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
BroadcastMessageВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте или любом из его дочерей.
CompareTagПроверяет тег GameObject на соответствие определенному тегу.
GetComponentПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент.
GetComponentInChildrenПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любого ребенка GameObject.
GetComponentIndexПолучает индекс компонента на его родительском GameObject.
GetComponentInParentПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любой родитель GameObject.
GetComponentsПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент.
GetComponentsInChildrenПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любого ребенка GameObject.
GetComponentsInParentПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и любой родитель GameObject.
SendMessageВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте.
SendMessageUpwardsВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте и на каждом предшественнике поведения.
TryGetComponentПолучает компонент указанного типа, если он существует.
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.