If I add this code to Update()
Debug.Log(Input.mousePosition);
I can see Mouse Positions in my debug log update nicely when my mouse cursor is over my game display.
If I very slowly move my mouse outside of the game view (say by moving the mouse at less than 1/2 an inch per second), then Input.mousePosition updates nicely, and still gives me valid information when the cursor is outside of the window.
If I move the mouse cursor outside of my game view at a normal mouse speed, then Input.mousePosition stops telling me where the mouse cursor actually is, and instead returns where it last was the last time it was over the game window.
I need to know the actual mouse position when the mouse is outside of the game viewport (so that I can detect if I am inside the viewport or not), and this behaviour is preventing that.
What is the proper reliable way to get the mouse position regardless of where the mouse cursor is? Perhaps this odd behaviour of Input.mouseposition is a bug?