

The term “Kinematic Rigidbody” confuses a lot of Unity developers. You check the Is Kinematic box on a Rigidbody and suddenly physics behaves differently. Objects stop reacting to forces. Collisions feel different. Some callbacks stop firing.
So what is actually happening?
Let’s break it down clearly and practically.
A Rigidbody with Is Kinematic enabled is controlled by your code, not by the physics engine.
This means:
Think of it as a physics object that you move manually.
In the Inspector:
Or via code:
Rigidbody rb = GetComponent<Rigidbody>(); rb.isKinematic = true;
Since physics no longer moves it, you must control it manually.
void FixedUpdate()
{
Vector3 targetPosition = transform.position + transform.forward * 5f * Time.fixedDeltaTime;
rb.MovePosition(targetPosition);
}
MovePosition keeps collision detection stable.
This is not recommended:
transform.position += transform.forward * 5f * Time.deltaTime;
Direct transform changes can cause tunneling or missed collisions.
Here is something important:
Kinematic bodies can push dynamic rigidbodies, but they themselves will not be affected.
You want a platform to move along a path but not fall due to gravity.
A door that opens smoothly via animation but should still push the player.
Objects that move predictably without physics interference.
If you are fully controlling movement logic manually.
You can switch modes at runtime.
Example: Ragdoll activation.
void EnableRagdoll()
{
rb.isKinematic = false;
}
When disabled, physics takes control again.
Correct version using your required format:
void EnableRagdoll()
{
rb.isKinematic = false;
}
If isKinematic is true, this will do nothing:
rb.AddForce(Vector3.up * 10f);
Kinematic bodies ignore forces completely.
Physics movement should happen inside FixedUpdate for consistent results.
If objects move fast, enable Continuous collision detection to prevent passing through other colliders.
Both give manual movement control, but they are not identical.
If you need physics interaction, Kinematic Rigidbody is often the better choice.
Kinematic bodies are lighter than dynamic bodies because they are not fully simulated by physics forces.
However, excessive manual movement or complex collision checks can still impact performance.
In those cases, use a dynamic Rigidbody.
Kinematic Rigidbody is not “better” or “worse” than dynamic Rigidbody. It is simply a different mode.
If you want precise control without physics interference but still need collision detection, Kinematic is often the perfect middle ground.
Once you understand that it disables force-based simulation but keeps collision logic, its behavior becomes completely predictable.