Why does your Unity physics feel jittery?

You might be pushing it from the wrong method.

Why does your Unity physics feel jittery?

The problem

Physics forces in Update.

void Update(){    rb.AddForce( Vector3.forward * 10f );}

On a fast PC this adds more force per physics step than on a slow one.

Why it happens

Two different clocks.

Update follows the frame rate. Physics runs on its own fixed timestep.

Update
every frame, uneven
FixedUpdate
every physics step, steady

The fix

Push physics in FixedUpdate.

void FixedUpdate(){    rb.AddForce( Vector3.forward * 10f );}

FixedUpdate runs once per physics step, so every step gets the same push.

But

Read input in Update.

void Update(){    if ( Input.GetKeyDown( KeyCode.Space ) )        _jump = true;} void FixedUpdate(){    if ( !_jump ) return;    rb.AddForce( Vector3.up * 5f, ForceMode.Impulse );    _jump = false;}

GetKeyDown is true for one frame only. Catch it in Update, act on it in FixedUpdate.

The rule

Input in Update. Physics in FixedUpdate.

Reading keys
Update
Forces, velocity
FixedUpdate
Visuals
Update