Unity Physics Body Types
Source: Dev.to
Static Bodies
Static bodies are completely immobile. Once placed in the scene, they stay fixed in position and rotation. They don’t respond to forces or collisions, but other objects can collide with them.
Key Characteristics
- No
Rigidbodyrequired in 3D (collider alone is enough) - Use
Rigidbody2DwithbodyType = Staticin 2D - Optimised for performance; Unity doesn’t have to recalculate their position
Ideal for
- Walls, floors, terrain, or background structures
Kinematic Bodies
Kinematic bodies don’t respond to physics forces or collisions themselves, but they can still affect Dynamic bodies if they move into them. They’re moved through scripting (e.g., by changing transform.position or setting velocity).
Key Characteristics
- Set
isKinematic = trueonRigidbody(3D) orbodyType = KinematiconRigidbody2D(2D) - Not affected by gravity or collisions
Useful for
- Elevators, doors, conveyor belts, or moving platforms
Dynamic Bodies
Dynamic bodies are fully simulated by the physics engine. They respond to gravity, forces, collisions, and other physical interactions. These are the most “alive” objects in your scene.
Key Characteristics
- Requires
Rigidbody(3D) orRigidbody2D(2D) - Use
bodyType = Dynamicfor 2D - Reacts to
AddForce, velocity, mass, and friction
Ideal for
- Players, enemies, falling crates, or any object that moves physically
Choosing the Right Type
- Static – use for anything that never moves.
- Dynamic – use when you want full physics interaction.
- Kinematic – use when you need scripted or manual movement without physics influence.