Rigidbody

class in UnityEngine

/

Inherits from:Component

Switch to Manual

Description

Управляет положением объекта через имитацию физики.

Adding a Rigidbody component to an object will put its motion under the control of Unity's physics engine. Even without adding any code, a Rigidbody object will be pulled downward by gravity and will react to collisions with incoming objects if the right Collider component is also present.

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

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

Большинство проблем при запуске с Rigidbody в том, что игровая физика кажется запущенной в режиме "slow motion" (замедленного движения). На самом деле это из за масштаба (scale) ваших моделей. Настройки гравитации по умолчанию допускают что один мировой юнит (единица) соответствует одному метру. В играх без использования физики юниты не имеют особого значения, можно сделать их всех масштабом в 100. Но когда используется физика, они будут обработаны как очень большие объекты. Если большой масштаб используется для объектов, которые должны быть маленькими, они будут казаться падающими очень медленно - физический движок будет принимать их за большие объекты, падающие на очень большое расстояние. Имея это ввиду, не забудьте сохранить масштаб ваших объектов более-менее приближенном к реальному (для автомобиля это примерно 4 юнита = 4 метра, к примеру).

Variables

angularDragУгловое торможение объекта.
angularVelocityThe angular velocity vector of the rigidbody measured in radians per second.
centerOfMassЦентр массы относительно источника transform.
collisionDetectionModeРежим обнаружения коллизии Rigidbody.
constraintsУправляет тем, какая степень свободы допустима при симуляции данного Rigidbody.
detectCollisionsДолжно ли определение коллизии быть активным? (по умолчанию оно активно всегда).
dragТорможение объекта.
freezeRotationКонтролирует будет ли физика изменять вращение объекта.
inertiaTensorДиагональный тензор инерции массы относительно центра массы.
inertiaTensorRotationВращение тензора инерции.
interpolationИнтерполяция позволит вам сгладить эффект работающей физики по числу фиксированной частоты кадров.
isKinematicКонтролирует влияние физики на твердое тело.
massМасса физического тела.
maxAngularVelocityThe maximimum angular velocity of the rigidbody measured in radians per second. (Default 7) range { 0, infinity }.
maxDepenetrationVelocityСкорость твердого тела к точке мировой точке в глобальном пространстве.
positionПозиция твердого тела.
rotationThe rotation of the Rigidbody.
sleepThresholdЛинейная скорость, ниже которой объекты начинают погружаться в сон (По умолчанию 0.14), диапазон {0, бесконечность}.
solverIterationssolverIterationCount определяет насколько точные решения принимают суставы и связи.
solverVelocityIterationsThe solverVelocityIterations affects how how accurately Rigidbody joints and collision contacts are resolved. Overrides Physics.defaultSolverVelocityIterations. Must be positive.
useGravityКонтролирует, оказывает ли влияние гравитация на твердое тело.
velocityThe velocity vector of the rigidbody. It represents the rate of change of Rigidbody position.
worldCenterOfMassЦентр масс твердого тела в мировом пространстве.

Public Functions

AddExplosionForceПрименение силы к твердому телу имитирует эффект взрыва. Сила взрыва убывает линейно относительно расстояния до твердого тела.
AddForceДобавляет крутящий момент к физическому телу.
AddForceAtPositionПрименяет силу к / позиции/. В результате будет применено торможение и сила к объекту.
AddRelativeForceДобавление силы к твердому телу относительно его системы координат.
AddRelativeTorqueДобавление силы к твердому телу относительно его системы координат.
AddTorqueДобавляет крутящий момент к физическому телу.
ClosestPointOnBoundsБлижайшая точка к ограничивающей рамке прикрепленных коллайдеров.
GetPointVelocityСкорость твердого тела к точке мировой точке в глобальном пространстве.
GetRelativePointVelocityСкорость относительно точки твердого тела (относительной точки).
IsSleepingТвердое тело спит?
MovePositionMoves the kinematic Rigidbody towards position.
MoveRotationВращает твердое тело к вращение.
ResetCenterOfMassМасса физического тела.
ResetInertiaTensorinertiaTensorRotation вращает тензор инерции.
SetDensityНазначить массу, основанную на прикрепленных коллайдерах, при условии постоянной плотности.
SleepОтправляет твердое тело в сон по меньшей мере на один кадр.
SweepTestTests if a rigidbody would collide with anything, if it was moved through the Scene.
SweepTestAllПохож на Rigidbody.SweepTest, но возвращает все прикосновения.
WakeUpСилы для пробуждения твердого тела.

Messages

OnCollisionEnterOnCollisionEnter вызывается, когда этот collider/rigidbody начал соприкосновение с другим rigidbody/collider.
OnCollisionExitOnCollisionExit вызывается, когда collider/rigidbody прекращает контакт с другим rigidbody/collider.
OnCollisionStayOnCollisionStay вызывается один раз в кадр для каждого collider/rigidbody, который касается другого rigidbody/collider.

Inherited members

Variables

gameObjectИгровой объект к которому прикреплён данный компонент. Компонент всегда прикреплён к игровому объекту.
tagТег данного игрового объекта.
transformThe Transform attached to this GameObject.
hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
nameThe name of the object.

Public Functions

BroadcastMessageВызывает метод названный methodName на каждом MonoBehaviour этого game object-а или любого из его потомков.
CompareTagПомечен ли данный игровой объект тегом tag?
GetComponentВозвращает компонент типа type, если он прикреплен к игровому объекту и null, если не прикреплен.
GetComponentInChildrenВозвращает компонент типа type в GameObject или некоторого его потомка через поиск в глубину.
GetComponentInParentВозвращает все компоненты типа type из GameObject'а или из любого его родителя.
GetComponentsВозвращает все компоненты типа type в GameObject.
GetComponentsInChildrenВозвращает все компоненты типа type в GameObject или любому из его потомков.
GetComponentsInParentВозвращает все компоненты типа type в GameObject или любому из его родителей.
SendMessageВызывает метод с названием methodName в каждом MonoBehaviour в этом игровом объекте.
SendMessageUpwardsВызывает метод с именем methodName в каждом MonoBehaviour в этом игровом объекте и в каждом предке поведения.
TryGetComponentGets the component of the specified type, if it exists.
GetInstanceIDReturns the instance id of the object.
ToStringReturns the name of the object.

Static Functions

DestroyRemoves a GameObject, component or asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindObjectOfTypeReturns the first active loaded object of Type type.
FindObjectsOfTypeReturns a list of all active loaded objects of Type type.
InstantiateClones the object original and returns the clone.

Operators

boolDoes the object exist?
operator !=Compares if two objects refer to a different object.
operator ==Compares two object references to see if they refer to the same object.
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961