Описание
Определяет, привязан ли аппаратный указатель к центру представления, привязан к окну или вообще не ограничен.
При блокировке курсор помещается в центр представления и не может быть перемещен. В этом состоянии курсор невидим, независимо от значения Cursor.visible.
В ограниченном режиме курсор ведет себя нормально, за исключением того, что он ограничен видом. Например, если приложение работает в окне, курсор мыши не может покинуть окно в ограниченном режиме. Это поддерживается только в автономных сборках Windows и Linux.
Чтобы обеспечить удобство работы пользователей, рекомендуется блокировать или ограничивать курсор только в результате действий пользователя, например, при нажатии кнопки.
Состояние курсора может быть изменено операционной системой или Unity. Поэтому вам следует проверять состояние курсора, например, когда приложение восстанавливает фокус или состояние игры изменяется, чтобы открыть пользовательский интерфейс. В редакторе курсор автоматически сбрасывается при нажатии escape или при переключении приложений. В автономном проигрывателе у вас есть полный контроль над курсором мыши, но при переключении приложений курсор все равно сбрасывается.
using UnityEngine;
public class CursorLockExample : MonoBehaviour
{
void Update()
{
//Press the space bar to apply no locking to the Cursor
if (Input.GetKey(KeyCode.Space))
Cursor.lockState = CursorLockMode.None;
}
void OnGUI()
{
//Press this button to lock the Cursor
if (GUI.Button(new Rect(0, 0, 100, 50), "Lock Cursor"))
{
Cursor.lockState = CursorLockMode.Locked;
}
//Press this button to confine the Cursor within the screen
if (GUI.Button(new Rect(125, 0, 100, 50), "Confine Cursor"))
{
Cursor.lockState = CursorLockMode.Confined;
}
}
}