Quick answer: Inject both the time scale and the delta into the logic so the test steps it with exact values, instead of relying on the global Time class during play.

Slow-motion and pause logic is hard to test against the live Time class. Feeding the logic an explicit scaled delta makes the result deterministic and assertable.

How to fix it

1. Pass scaled delta into the logic

Have the system accept a delta argument (already scaled) rather than reading Time.deltaTime * Time.timeScale internally, so the test controls exactly how much time advances.

2. Test the scaling math separately

Unit-test the function that computes scaled movement given a delta and a scale, covering pause (scale 0) and slow-mo (scale 0.5) with exact expected outputs.

3. Verify edge cases

Assert that a time scale of zero advances nothing and that FixedUpdate-based logic still behaves when scale changes, since fixed and unscaled time diverge under slow motion.

Catching the ones you can't reproduce

The hardest version of this to fix is the one you can't reproduce — it only happens on a player's hardware, OS, driver, or save state, under conditions that simply aren't present on your machine. A report that says “it crashed” or “it froze” gives you nothing to act on, so the bug survives release after release while quietly costing you players.

Automatic error capture closes that gap. Each failure arrives with its full stack trace, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke, so even a failure you have never seen becomes a specific, reproducible issue. Fold identical failures into one signature ranked by how many players each hits, and your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.

This is where a tool like Bugnet earns its place. Its SDK captures every Unity error automatically with the full stack trace plus device, OS, memory, build, and game-state context, folds duplicates into one grouped issue with an occurrence count, and ties each to the build it first appeared on — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release.

The errors you never hear about are the ones quietly costing you players. Visibility turns them into a worklist.