Legacy Documentation: Version 4.6.2
Language: English
  • C#
  • JS
  • Boo

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Screen.lockCursor

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static var lockCursor: bool;
public static bool lockCursor;
public static lockCursor as bool

Description

Should the cursor be locked?

The cursor will automatically be hidden, centered on view and made to never leave the view.

In the web player, the cursor may only be locked after the user has clicked on the content and the user has not left the content view with the cursor. After the user presses escape or switches to another application the cursor will be automatically unlocked. The cursor lock will also be lost when exiting full screen mode. You can query if the cursor is currently locked by checking the lockCursor state. To provide a good user experience it is recommended to only lock the cursor as a result of pressing a button. Also you should check if the cursor got unlocked, in order to e.g. pause the game or bring up a game menu. In the Web Player and Editor the cursor will automatically be unlocked when you press escape. In the Standalone Player you have full control over mouse locking thus it won't automatically lose mouse lock unless you switch applications.

	// Called when the cursor is actually being locked

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

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

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

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

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

private var wasLocked = false;

function 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 he switched to another application // or because some script set Screen.lockCursor = false; if (!Screen.lockCursor && wasLocked) { wasLocked = false; DidUnlockCursor(); } // Did we gain cursor locking? else if (Screen.lockCursor && !wasLocked) { wasLocked = true; DidLockCursor (); } }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void DidLockCursor() {
        Debug.Log("Locking cursor");
        guiTexture.enabled = false;
    }
    void DidUnlockCursor() {
        Debug.Log("Unlocking cursor");
        guiTexture.enabled = true;
    }
    void OnMouseDown() {
        Screen.lockCursor = true;
    }
    private bool wasLocked = false;
    void Update() {
        if (Input.GetKeyDown("escape"))
            Screen.lockCursor = false;
        
        if (!Screen.lockCursor && wasLocked) {
            wasLocked = false;
            DidUnlockCursor();
        } else
            if (Screen.lockCursor && !wasLocked) {
                wasLocked = true;
                DidLockCursor();
            }
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	def DidLockCursor() as void:
		Debug.Log('Locking cursor')
		guiTexture.enabled = false

	def DidUnlockCursor() as void:
		Debug.Log('Unlocking cursor')
		guiTexture.enabled = true

	def OnMouseDown() as void:
		Screen.lockCursor = true

	private wasLocked as bool = false

	def Update() as void:
		if Input.GetKeyDown('escape'):
			Screen.lockCursor = false
		if (not Screen.lockCursor) and wasLocked:
			wasLocked = false
			DidUnlockCursor()
		elif Screen.lockCursor and (not wasLocked):
			wasLocked = true
			DidLockCursor()