Why is "Screen.showCursor = false;" not working?

Working with Unity is often hard work. A lot of script stuff, parameter handlings and others are not quite logic or do unwanted things.
Here for example that script order “Screen.showCursor = false;”. This should make the system cursor (arrow) invisible. But it does not!!

I had the same problem - Just turn off “Screen.LockCursor” which shows the cursor…

Compare to “Screen.showCursor = false;” "“Screen.lockCursor = true;” in the same context makes the cursor invisible until one push the ESC button.

Well, it does. That is, I’ve never seen it not work. If you’re 100% sure the code is actually running (e.g., you put it in a Start function and made sure to spell that “Start” and not “start”–might seem silly but it’s more common than you think), and you’re sure you’re using the game window and not the scene window (because the cursor is always visible outside the game window), then file a bug report so they have a chance to figure out why it might not be working on your particular hardware/OS.

Stumbled on this too (U4.2), so thought I would add: in the Editor when starting the Game, the normal/default mouse cursor displays until a mouse click anywhere within the Game window occurs, then it goes away and the custom mouse is displayed.

It’s possible that this is because you are using ESC (ie: to Pause the game). In the Unity Editor, pressing ESC makes the cursor appear.

Have you checked it in the build to see if it works?

I had the same problem when I tried to hide the cursor.
Even if your code is right it will not disappear if you using “Screen.lockCursor” somewhere in you code.

To fix this, you must change “Screen.lockCursor” to “Cursor.lockState = CursorLockMode.Locked;” or “Cursor.lockState = CursorLockMode.None” if you are wanting to lock/unlock your cursor.
You must then put the “Cursor.visible = false;” in the start function.
This should solve the problem.
@rezilausiv @timmy50 @sun_spider @rileydabozo @Program4Life