Method group is Obsolete

Screen.lockCursor

切换到手册
Obsolete public static bool lockCursor ;

描述

是否应锁定光标?

光标将自动隐藏、位于视图中心、永远不会离开该视图。

用户按下 ESC 键或切换到其他应用程序后,将自动解锁光标。 退出全屏模式时,也将解除光标锁定。 可以通过检查 lockCursor 状态来查询当前是否锁定了光标。 为了提供良好的用户体验,建议仅在按下按钮时锁定光标。 此外,您还应该检查是否解锁了光标,以便暂停游戏、调出游戏菜单等。 在 Editor 中,按下 ESC 键后,将自动解锁光标。 在独立平台播放器中,您可以全权控制鼠标锁定,因此,除非切换应用程序,否则不会自动解除鼠标锁定。

using UnityEngine;

public class Example : MonoBehaviour { GUITexture gt; bool wasLocked = false;

void Start() { gt = GetComponent<GUITexture>(); }

// Called when the cursor is actually being locked

void DidLockCursor() { Debug.Log("Locking cursor");

// Disable the button gt.enabled = false; }

// Called when the cursor is being unlocked // or by a script calling Screen.lockCursor = false; void DidUnlockCursor() { Debug.Log("Unlocking cursor");

// Show the button again gt.enabled = true; }

void OnMouseDown() { // Lock the cursor Screen.lockCursor = true; }

void Update() { // In standalone player we have to provide our own key // input for unlocking the cursor if (Input.GetKeyDown("escape")) Screen.lockCursor = false;

// Did we lose cursor locking? // eg. because the user pressed escape // or because they switched to another application // or because some script set Screen.lockCursor = false; if (!Screen.lockCursor &amp;&amp; wasLocked) { wasLocked = false; DidUnlockCursor(); } // Did we gain cursor locking? else if (Screen.lockCursor &amp;&amp; !wasLocked) { wasLocked = true; DidLockCursor(); } } }