Rigidbody Manual     Reference     Scripting
 Scripting > Runtime Classes > Rigidbody Switch to Component
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. GetComponentInChildren Returns the component of Type type in the GameObject or any of its children using depth first search. GetComponentsInChildren Returns all components of Type type in the GameObject or any of its children. GetComponents Returns all components of Type type in the GameObject. 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. 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.