Заблокировать и скрыть курсор мыши

Во время вращения камеры, курсор мыши носится по всему экрану. По-этому, камера плохо управляется. Эффект похож на то, как если на обычном C++ / Delphi не центрировать курсор каждый раз после перемещения мыши.
По-этому, надо заблокировать курсор. Гугл говорит, что это делается как-то так:

        if (Input.GetKeyDown(KeyCode.O))
        {
            Cursor.lockState = CursorLockMode.Locked;
			Cursor.visible = false;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
		{
			Cursor.lockState = CursorLockMode.None;
			Cursor.visible = true;
		}

Но это не работает. Курсор и не лочится и не пропадает.

Может по какой-то причине не выполняются эти строки кода внутри иф?

Но остальные GetKeyDownы - выполняются.
Добавил вывод в консоль - эти тоже выполняются.

С курсором разобрался. Оказалось, что его можно заблокировать только при нажатии мышки. То есть, так:

        if (Input.GetKeyDown(KeyCode.Mouse0) && Cursor.lockState != CursorLockMode.Locked)
        {
            Debug.Log("locked");
            Cursor.lockState = CursorLockMode.Locked;
        }

Тогда работает. Курсор блокируется и автоматически скрывается. Cursor.visible = false писать не нужно (об этом в доке написано). А вот про то, что он только по кнопке мыши лочится - я там не вижу :thinking: