UNITY MOVEMENT SYSTEMS & CHARACTER CONTROLLERS

The authoritative guide cluster on building 3D locomotion, Rigidbody velocity physics, arcade ground vehicles, aerospace flight dynamics, and cinematic camera tracking.

Locomotion Architectures in Unity

Movement is the cornerstone of player engagement. Choosing the wrong movement architecture early in development can lead to tunneling through colliders, jittery camera artifacts, desynchronized physics steps, or sluggish input response. Unity provides three distinct locomotion paradigms:

1. Rigidbody Physics (PhysX)
Uses AddForce() or velocity modifications inside FixedUpdate(). Fully respects mass, momentum, friction, and collision normals. Ideal for vehicles, aircraft, projectiles, and physics-driven ragdolls.
2. CharacterController (Kinematic)
Uses Move() or SimpleMove() in Update(). Provides non-physics collision resolution without forces or torque. Perfect for responsive FPS/TPS platformers, climbing ladders, and step-offset slopes.
3. Direct Transform (Kinematic)
Uses transform.position or transform.Translate() multiplied by Time.deltaTime. Teleports vertices each frame without physics impulse calculations. Suitable for UI elements, moving platforms, and cutscenes.

Guides in This Cluster

Implement clean WASD/Joystick movement with sprint, grounded raycast detection, smooth acceleration ramps, and gravity integration using both Rigidbody and CharacterController.

Construct responsive arcade driving physics with lateral tire friction, wheel traction vectors, throttle acceleration curves, steering slip angles, and handbrake drifting.

Model aerodynamic lift coefficients, drag polar formulas, thrust vectors, pitch/roll/yaw angular torque, and stall velocities used in combat flight games like Operation Black Sky.

Implement collective pitch lift, cyclic pitch/roll tilt, anti-torque tail rotor yaw, and self-leveling aerodynamic damping for combat gunships.

Eliminate camera micro-jitter using LateUpdate(), Vector3.SmoothDamp, offset rotation tracking, look-ahead target prediction, and collision zoom clipping.

A deep technical comparison of frame-rate independent position translation versus PhysX force integration, performance trade-offs, and tunneling bugs.

Implement realistic homing missile guidance using proportional navigation (PN), line-of-sight rate calculations, max angular acceleration limits, and lead pursuit.

Related Developer Tools & Error Troubleshooting

Movement Systems FAQ

Movement jitter is almost always caused by a timing mismatch: moving a Rigidbody in FixedUpdate() while updating the camera in Update() (or vice versa). Set your Rigidbody's Interpolate property to Interpolate and update your follow camera exclusively inside LateUpdate().
Use CharacterController for precise, arcade platformers and standard humanoids where you want instantaneous stopping without residual momentum. Use Rigidbody for vehicles, spacecraft, physics puzzles, and any object that interacts with physical impulses, explosions, or buoyancy.