Quick answer: Project Settings → Time → Fixed Timestep = 0.01666 (60Hz). Rigidbody Interpolate on. Test on device, not editor.
Player ball rolls smoothly in editor. On Android phone, choppy motion. Physics tick at 50Hz against 60fps render produces visible aliasing.
The Fix
Project Settings → Time:
Fixed Timestep: 0.01666 // 60Hz physics
Maximum Allowed Timestep: 0.0333
Rigidbody:
Interpolate: Interpolate
Collision Detection: Continuous Discrete
Match physics rate to typical render rate; interpolation handles the small remainder. Use Extrapolate only for free-flying bodies.
Verifying
Build and test on device. Smooth motion. Profiler shows physics ticks aligned with render frames.
“Match rates. Interpolate fills. Smooth on phone.”
Related Issues
For trigger stay sleep, see trigger stay. For 2D slope, see 2D slope.
Match rates. Smooth.