Quick answer: Unity Input System reporting stale touch positions after a mobile screen rotation? Touch positions are in screen pixels; rotation changes the coordinate system - listen for orientation change and reset.

Portrait-mode game pinch-zooms; player rotates to landscape mid-pinch; zoom goes wild because touch positions reference pre-rotation pixels.

Reset on orientation change

Application.orientationChanged += () => {
  Touchscreen.current.Reset();
};

Discard in-flight touch state. Player has to lift and re-touch; usually what they expect after rotating.

Or transform to normalized coords

Convert touch positions to 0-1 normalized; transform survives rotation.

Lock orientation during gameplay

If rotation isn't gameplay-relevant, lock it. Eliminates the bug surface.

“Coordinate spaces change on orientation. Cached state in the old space is the bug.”

Test landscape and portrait if you support both. Bugs hide in the transition; the static states often work.

Related reading