Управляет положением объекта через имитацию физики.
Добавление компонента Rigidbody к объекту отдает его движение под контроль физического движка Unity. Даже без добавления какого либо кода, объект с Rigidbody будет подвержен гравитации и реагировать на коллизии с входящими объектами, если имеет компонент Collider.
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, бесконечность}. |
| solverIterationCount | Позволяет вам переопределять решения счетчика итерации каждого твердого тела. |
| 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 | The game object this component is attached to. A component is always attached to a game object. |
| 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 этого game object-а или любого из его потомков. |
| CompareTag | Помечен ли этот игровой объект тэгом tag? |
| GetComponent | Возвращает компонент типа type, если он прикреплен к игровому объекту и null, если не прикреплен. |
| GetComponentInChildren | Returns the component of Type type in the GameObject or any of its children using depth first search. |
| GetComponentInParent | Returns the component of Type type in the GameObject or any of its parents. |
| GetComponents | Returns all components of Type type in the GameObject. |
| GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. |
| GetComponentsInParent | Returns all components of Type type in the GameObject or any of its parents. |
| SendMessage | Вызывает метод с именем methodName в каждом MonoBehaviour на этом объекте. |
| SendMessageUpwards | Вызывает на каждом MonoBehaviour в данном игровом объекте и на каждом предке скрипта метод с именем methodName. |
| GetInstanceID | Returns the instance id of the object. |
| ToString | Returns the name of the game object. |
| Destroy | Removes a gameobject, component or asset. |
| DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
| 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. |