确定硬件指针是否锁定到视图的中心、受限于窗口或者根本不受限制。
锁定时,光标位于视图的中心且无法移动。无论 Cursor.visible 的值如何,光标在此状态下均不可见。
当受限时,光标表现正常,但限制在视图中。例如,在 Confined 模式下,如果应用程序在窗口中运行,鼠标光标将无法离开窗口。仅在 Windows 和 Linux 独立构建中受支持。
要提供良好的用户体验,建议仅支持由用户操作(例如按下按钮)来锁定或限制光标。
光标状态可以由操作系统或 Unity 更改。因此,您应该检查光标的状态,例如当应用程序重新获得焦点或游戏状态发生变化以显示 UI 时。
在 Editor 中,按下 Esc 键或切换应用程序时,光标会自动重置。
在独立平台播放器中,您可以完全控制鼠标光标,但切换应用程序仍会重置光标。
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; } } }