Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Cursor.lockState

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public static var lockState: CursorLockMode;
public static CursorLockMode lockState;

Описание

How should the cursor be handled?

When locked, the cursor will automatically be centered on view and made to never leave the view. This will primarily be used with Cursor.visible = false. When confined, the cursor behave normally with the exception of being confined to the view.

In the web player, the cursor may only be locked/confined 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 reset to normal. The cursor state will also be lost when exiting full screen mode.

To provide a good user experience it is recommended to only lock or confine the cursor as a result of pressing a button. Also you should check if the cursor was reset, 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 reset when you press escape. In the Standalone Player you have full control over the mouse cursor, thus it won't automatically be reset unless you switch applications.


        
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { CursorLockMode wantedMode; // Apply requested cursor state void SetCursorState () { Cursor.lockState = wantedMode; // Hide cursor when locking Cursor.visible = (CursorLockMode.Locked != wantedMode); } void OnGUI () { GUILayout.BeginVertical (); // Release cursor on escape keypress if (Input.GetKeyDown (KeyCode.Escape)) Cursor.lockState = wantedMode = CursorLockMode.None; switch (Cursor.lockState) { case CursorLockMode.None: GUILayout.Label ("Cursor is normal"); if (GUILayout.Button ("Lock cursor")) wantedMode = CursorLockMode.Locked; if (GUILayout.Button ("Confine cursor")) wantedMode = CursorLockMode.Confined; break; case CursorLockMode.Confined: GUILayout.Label ("Cursor is confined"); if (GUILayout.Button ("Lock cursor")) wantedMode = CursorLockMode.Locked; if (GUILayout.Button ("Release cursor")) wantedMode = CursorLockMode.None; break; case CursorLockMode.Locked: GUILayout.Label ("Cursor is locked"); if (GUILayout.Button ("Unlock cursor")) wantedMode = CursorLockMode.None; if (GUILayout.Button ("Confine cursor")) wantedMode = CursorLockMode.Confined; break; }

GUILayout.EndVertical ();

SetCursorState (); } }