Rigidbody Manual     Reference     Scripting  
Scripting > Runtime Classes > Rigidbody
Rigidbody Inherits from Component

Control of an object's position through physics simulation.

Rigidbody components take control over an object's position - it makes the objects fall down under the influence of gravity, and can calculate how objects will respond to collisions.

When manipulating rigidbody parameters you should work inside the FixedUpdate function. Physics simulation is carried out in discrete timesteps. The FixedUpdate function is called immediately before each step.

Things to watch out for when using rigid bodies:

1. If your simulation looks like slow motion and not solid:
This is a problem of scale. When your game world is huge everything will appear to be move very slowly. Make sure all your models are in real world sizes. For example a car should be around 4 meters long. A character around 2 meters high. An object falls at the same acceleration no matter big or small, heavy or light. If your game world has a large scale, objects will still fall at the same acceleration. But since everything is larger, objects will appear like they fall slower.

Variables
velocity

The velocity vector of the rigidbody.

angularVelocity

The angular velocity vector of the rigidbody.

drag

The drag of the object.

angularDrag

The angular drag of the object.

mass

The mass of the rigidbody.

useGravity

Controls whether gravity affects this rigidbody.

isKinematic

Controls whether physics affects the rigidbody.

freezeRotation

Controls whether physics will change the rotation of the object.

constraints

Controls which degrees of freedom are alowed for the simulation of this Rigidbody.

collisionDetectionMode

The Rigidbody's collision detection mode.

centerOfMass

The center of mass relative to the transform's origin.

worldCenterOfMass

The center of mass of the rigidbody in world space (Read Only).

inertiaTensorRotation

The rotation of the inertia tensor.

inertiaTensor

The diagonal inertia tensor of mass relative to the center of mass.

detectCollisions

Should collision detection be enabled? (By default always enabled)

useConeFriction

Force cone friction to be used for this rigidbody.

position

The position of the rigidbody.

rotation

The rotation of the rigdibody.

interpolation

Interpolation allows you to smooth out the effect of running physics at a fixed frame rate.

solverIterationCount

Allows you to override the solver iteration count per rigidbody.

sleepVelocity

The linear velocity, below which objects start going to sleep. (Default 0.14) range { 0, infinity }

sleepAngularVelocity

The angular velocity, below which objects start going to sleep. (Default 0.14) range { 0, infinity }

maxAngularVelocity

The maximimum angular velocity of the rigidbody. (Default 7) range { 0, infinity }

Functions
SetDensity

Sets the mass based on the attached colliders assuming a constant density.

AddForce

Adds a force to the rigidbody. As a result the rigidbody will start moving.

AddRelativeForce

Adds a force to the rigidbody relative to its coordinate system.

AddTorque

Adds a torque to the rigidbody.

AddRelativeTorque

Adds a torque to the rigidbody relative to the rigidbodie's own coordinate system.

AddForceAtPosition

Applies force at position. As a result this will apply a torque and force on the object.

AddExplosionForce

Applies a force to the rigidbody that simulates explosion effects. The explosion force will fall off linearly with distance to the rigidbody.

ClosestPointOnBounds

The closest point to the bounding box of the attached colliders.

GetRelativePointVelocity

The velocity relative to the rigidbody at the point relativePoint.

GetPointVelocity

The velocity of the rigidbody at the point worldPoint in global space.

MovePosition

Moves the rigidbody to position.

MoveRotation

Rotates the rigidbody to rotation.

Sleep

Forces a rigidbody to sleep at least one frame.

IsSleeping

Is the rigidbody sleeping?

WakeUp

Forces a rigidbody to wake up.

SweepTest

Tests if a rigidbody would collide with anything, if it was moved through the scene.

SweepTestAll

Like Rigidbody.SweepTest, but returns all hits.

Messages Sent
OnCollisionEnter

OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.

OnCollisionExit

OnCollisionEnter is called when this collider/rigidbody has stopped touching another rigidbody/collider.

OnCollisionStay

OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.

Inherited members
Inherited Variables
transform

The Transform attached to this GameObject (null if there is none attached).

rigidbody

The Rigidbody attached to this GameObject (null if there is none attached).

camera

The Camera attached to this GameObject (null if there is none attached).

light

The Light attached to this GameObject (null if there is none attached).

animation

The Animation attached to this GameObject (null if there is none attached).

constantForce

The ConstantForce attached to this GameObject (null if there is none attached).

renderer

The Renderer attached to this GameObject (null if there is none attached).

audio

The AudioSource attached to this GameObject (null if there is none attached).

guiText

The GUIText attached to this GameObject (null if there is none attached).

networkView

The NetworkView attached to this GameObject (Read Only). (null if there is none attached)

guiTexture

The GUITexture attached to this GameObject (Read Only). (null if there is none attached)

collider

The Collider attached to this GameObject (null if there is none attached).

hingeJoint

The HingeJoint attached to this GameObject (null if there is none attached).

particleEmitter

The ParticleEmitter attached to this GameObject (null if there is none attached).

gameObject

The game object this component is attached to. A component is always attached to a game object.

tag

The tag of this game object.

name

The name of the object.

hideFlags

Should the object be hidden, saved with the scene or modifiable by the user?

Inherited Functions
GetComponent

Returns the component of Type type if the game object has one attached, null if it doesn't.

GetComponent.<T>

GetComponent

Returns the component with name type if the game object has one attached, null if it doesn't.

GetComponentInChildren

Returns the component of Type type in the GameObject or any of its children using depth first search.

GetComponentInChildren.<T>

GetComponentsInChildren

Returns all components of Type type in the GameObject or any of its children.

GetComponentsInChildren.<T>

GetComponents

Returns all components of Type type in the GameObject.

GetComponents.<T>

CompareTag

Is this game object tagged tag?

SendMessageUpwards

Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour

SendMessage

Calls the method named methodName on every MonoBehaviour in this game object.

BroadcastMessage

Calls the method named methodName on every MonoBehaviour in this game object or any of its children.

GetInstanceID

Returns the instance id of the object.

ToString

Returns the name of the game object.

Inherited Class Functions
operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Instantiate.<T>

Destroy

Removes a gameobject, component or asset.

DestroyImmediate

Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

FindObjectsOfType

Returns a list of all active loaded objects of Type type.

FindObjectOfType

Returns the first active loaded object of Type type.

operator ==

Compares if two objects refer to the same

operator !=

Compares if two objects refer to a different object

DontDestroyOnLoad

Makes the object target not be destroyed automatically when loading a new scene.