Unity Rigidbody: How Are Dynamic, Kinematic, and Static Different?
Minh Khoa
Author
Short answer: Physics moves it → Dynamic. Code moves it → Kinematic. It never moves → Static.
## Quick comparison
| Characteristic | Dynamic | Kinematic | Static |
|---|---|---|---|
| Who controls it? | Physics Engine | Code or Animation | No one, because it stays still |
| Gravity and Force | Applies | Does not apply | Does not apply |
| Pushed by another object | Yes | No | No |
| Affects Dynamic | Collision and response | Can push Dynamic | Blocks Dynamic like floors, walls |
| How it moves | Force, velocity, collision | MovePosition, MoveRotation | Should not move |
| Example | A falling crate, a ball, a car | A door, an elevator, a moving platform | Floor, wall, terrain |
| Simulation cost | Highest | Lower than Dynamic | Lowest if it stays still |
Explained as in an interview
What is Dynamic?
Dynamic is an object fully simulated by the Physics Engine. It is affected by gravity, force, and responds when colliding.
Example: A wooden crate falls from a height, hits the floor, then bounces or rolls away.
Use when: The object needs to move naturally according to physics.
What is Kinematic?
Kinematic still participates in the collision system, but the Physics Engine does not decide its movement. Gravity and force cannot push it; code or animation controls its position.
A Kinematic can push a Dynamic Rigidbody, but a Dynamic Rigidbody cannot push back against it.
Example: A moving platform follows a fixed path and carries the player along.
Use when: The object must move precisely as designed but still interact with physical objects.
What is Static?
Static is a collider that does not move throughout gameplay. The Physics Engine can optimize it because its position does not change.
Example: The floor, walls, cliffs, or terrain.
If a “Static” collider has to move often, it is no longer suitable as Static; consider Kinematic.
Trick question: Are Unity 3D and 2D the same?
Not exactly:
- With 3D Rigidbody, Unity does not have an option called “Static Rigidbody.”
- Dynamic:
isKinematic = false - Kinematic:
isKinematic = true - Static: GameObject has a Collider but no Rigidbody
- Dynamic:
- With Rigidbody2D, the property
bodyTypehas all three options:Dynamic,KinematicandStatic.
A 3D Rigidbody with isKinematic enabled is stillKinematic
, not Static.
How to remember
Dynamic reacts. Kinematic directs. Static stays.