Управляет положением объекта через имитацию физики.
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 | The 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 | Масса физического тела. |
maxAngularVelocity | The maximimum angular velocity of the rigidbody measured in radians per second. (Default 7) range { 0, infinity }. |
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. |
useGravity | Контролирует, оказывает ли влияние гравитация на твердое тело. |
velocity | Вектор скорости твердого тела. |
worldCenterOfMass | Центр масс твердого тела в мировом пространстве. |
AddExplosionForce | Применение силы к твердому телу имитирует эффект взрыва. Сила взрыва убывает линейно относительно расстояния до твердого тела. |
AddForce | Добавляет крутящий момент к физическому телу. |
AddForceAtPosition | Применяет силу к / позиции/. В результате будет применено торможение и сила к объекту. |
AddRelativeForce | Добавление силы к твердому телу относительно его системы координат. |
AddRelativeTorque | Добавление силы к твердому телу относительно его системы координат. |
AddTorque | Добавляет крутящий момент к физическому телу. |
ClosestPointOnBounds | Ближайшая точка к ограничивающей рамке прикрепленных коллайдеров. |
GetPointVelocity | Скорость твердого тела к точке мировой точке в глобальном пространстве. |
GetRelativePointVelocity | Скорость относительно точки твердого тела (относительной точки). |
IsSleeping | Твердое тело спит? |
MovePosition | Передвигает твердое тело в позицию. |
MoveRotation | Вращает твердое тело к вращение. |
ResetCenterOfMass | Масса физического тела. |
ResetInertiaTensor | inertiaTensorRotation вращает тензор инерции. |
SetDensity | Назначить массу, основанную на прикрепленных коллайдерах, при условии постоянной плотности. |
Sleep | Отправляет твердое тело в сон по меньшей мере на один кадр. |
SweepTest | Tests if a rigidbody would collide with anything, if it was moved through the Scene. |
SweepTestAll | Похож на Rigidbody.SweepTest, но возвращает все прикосновения. |
WakeUp | Силы для пробуждения твердого тела. |
OnCollisionEnter | OnCollisionEnter вызывается, когда этот collider/rigidbody начал соприкосновение с другим rigidbody/collider. |
OnCollisionExit | OnCollisionExit вызывается, когда collider/rigidbody прекращает контакт с другим rigidbody/collider. |
OnCollisionStay | OnCollisionStay вызывается один раз в кадр для каждого collider/rigidbody, который касается другого rigidbody/collider. |
gameObject | Игровой объект к которому прикреплён данный компонент. Компонент всегда прикреплён к игровому объекту. |
tag | Тег данного игрового объекта. |
transform | The Transform attached to this GameObject. |
hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
name | The name of the object. |
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 в этом игровом объекте и в каждом предке поведения. |
GetInstanceID | Returns the instance id of the object. |
ToString | Returns the name of the GameObject. |
Destroy | Удаляет GameObject, Component или Asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Do not destroy the target Object 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 | Clones the object original and returns the clone. |
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. |