Under Construction
Unity12 min259 views

Unity Rigidbody: How Are Dynamic, Kinematic, and Static Different?

Minh Khoa

Minh Khoa

Author

Short answer: Physics moves it → Dynamic. Code moves it → Kinematic. It never moves → Static.

image.png## Quick comparison

CharacteristicDynamicKinematicStatic
Who controls it?Physics EngineCode or AnimationNo one, because it stays still
Gravity and ForceAppliesDoes not applyDoes not apply
Pushed by another objectYesNoNo
Affects DynamicCollision and responseCan push DynamicBlocks Dynamic like floors, walls
How it movesForce, velocity, collisionMovePosition, MoveRotationShould not move
ExampleA falling crate, a ball, a carA door, an elevator, a moving platformFloor, wall, terrain
Simulation costHighestLower than DynamicLowest 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
  • With Rigidbody2D, the property bodyType has all three options: Dynamic, Kinematic and Static.

A 3D Rigidbody with isKinematic enabled is stillKinematic

, not Static.

How to remember

Dynamic reacts. Kinematic directs. Static stays.