Управляет положением объекта через имитацию физики.
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 метра, к примеру).
angularDrag | Угловое торможение объекта. |
angularVelocity | Вектор угловой скорости твердого тела. |
centerOfMass | Центр массы относительно источника transform. |
collisionDetectionMode | Режим обнаружения коллизии Rigidbody. |
constraints | Управляет тем, какая степень свободы допустима при симуляции данного Rigidbody. |
detectCollisions | Должно ли определение коллизии быть активным? (по умолчанию оно активно всегда). |
drag | Торможение объекта. |
freezeRotation | Контролирует будет ли физика изменять вращение объекта. |
inertiaTensor | Диагональный тензор инерции массы относительно центра массы. |
inertiaTensorRotation | Вращение тензора инерции. |
interpolation | Интерполяция позволит вам сгладить эффект работающей физики по числу фиксированной частоты кадров. |
isKinematic | Контролирует влияние физики на твердое тело. |
mass | Масса физического тела. |
maxAngularVelocity | Максимальная угловая скорость объекта. (По умолчанию 7) в диапазоне { 0, бесконечность}. |
maxDepenetrationVelocity | Скорость твердого тела к точке мировой точке в глобальном пространстве. |
position | Позиция твердого тела. |
rotation | Вращение твердого тела. |
sleepThreshold | Линейная скорость, ниже которой объекты начинают погружаться в сон (По умолчанию 0.14), диапазон {0, бесконечность}. |
solverIterations | solverIterationCount определяет насколько точные решения принимают суставы и связи. |
solverVelocityIterations | The solverVelocityIterations affects how how accurately Rigidbody joints and collision contacts are resolved. Overrides Physics.defaultSolverVelocityIterations. Must be positive. |
useConeFriction | Для этого твердого тела используется сила трения конуса. |
useGravity | Контролирует, оказывает ли влияние гравитация на твердое тело. |
velocity | Вектор скорости твердого тела. |
worldCenterOfMass | Центр масс твердого тела в мировом пространстве. |
AddExplosionForce | Применение силы к твердому телу имитирует эффект взрыва. Сила взрыва убывает линейно относительно расстояния до твердого тела. |
AddForce | Добавляет крутящий момент к физическому телу. |
AddForceAtPosition | Применяет силу к / позиции/. В результате будет применено торможение и сила к объекту. |
AddRelativeForce | Добавление силы к твердому телу относительно его системы координат. |
AddRelativeTorque | Добавление силы к твердому телу относительно его системы координат. |
AddTorque | Добавляет крутящий момент к физическому телу. |
ClosestPointOnBounds | Ближайшая точка к ограничивающей рамке прикрепленных коллайдеров. |
GetPointVelocity | Скорость твердого тела к точке мировой точке в глобальном пространстве. |
GetRelativePointVelocity | Скорость относительно точки твердого тела (относительной точки). |
IsSleeping | Твердое тело спит? |
MovePosition | Передвигает твердое тело в позицию. |
MoveRotation | Вращает твердое тело к вращение. |
ResetCenterOfMass | Масса физического тела. |
ResetInertiaTensor | inertiaTensorRotation вращает тензор инерции. |
SetDensity | Назначить массу, основанную на прикрепленных коллайдерах, при условии постоянной плотности. |
Sleep | Отправляет твердое тело в сон по меньшей мере на один кадр. |
SweepTest | Проверяет, столкнулось ли твердое тело с чем либо. Если да - перемещает через сцену. |
SweepTestAll | Похож на Rigidbody.SweepTest, но возвращает все прикосновения. |
WakeUp | Силы для пробуждения твердого тела. |
OnCollisionEnter | OnCollisionEnter вызывается, когда этот collider/rigidbody начал соприкосновение с другим rigidbody/collider. |
OnCollisionExit | OnCollisionEnter вызывается когда collider/rigidbody был остановлен прикосновением другого rigidbody/collider. |
OnCollisionStay | OnCollisionStay вызывается один раз в кадр для каждого collider/rigidbody, который касается другого rigidbody/collider. |
gameObject | Игровой объект к которому прикреплён данный компонент. Компонент всегда прикреплён к игровому объекту. |
tag | Тег данного игрового объекта. |
transform | The Transform attached to this GameObject (null if there is none attached). |
hideFlags | Should the object be hidden, saved with the scene or modifiable by the user? |
name | The name of the object. |
BroadcastMessage | Вызывает метод с именем methodName на каждом скрипте MonoBehaviour этого игрового объекта или на любом из его потомков. |
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 в этом игровом объекте и в каждом предке поведения. |
GetInstanceID | Returns the instance id of the object. |
ToString | Returns the name of the game object. |
Destroy | Удаляет GameObject, Component или Asset. |
DestroyImmediate | Destroys the object obj immediately. |
DontDestroyOnLoad | Makes the object target not be destroyed automatically when loading a new scene. |
FindObjectOfType | Returns the first active loaded object of Type type. |
FindObjectsOfType | Returns a list of all active loaded objects of Type type. |
Instantiate | Returns a copy of the object original. |
bool | Does 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. |