Управляет положением объекта через имитацию физики.
Добавление компонента 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. |