using UnityEngine; using UnityEngine.InputSystem; public class CursorLocker : MonoBehaviour { public InputAction lockCursorAction; private bool _cursorLocked; private void Start() { lockCursorAction.Enable(); //Setting it to initial state _cursorLocked = Cursor.lockState == CursorLockMode.Locked; } private void OnEnable() => lockCursorAction.performed += OnActionPerformed; private void OnDisable() => lockCursorAction.performed -= OnActionPerformed; private void OnActionPerformed(InputAction.CallbackContext obj) { ToggleCursorMode(!_cursorLocked); } private void ToggleCursorMode(bool newValue) { _cursorLocked = newValue; Cursor.visible = !_cursorLocked; //hiding/revealing Cursor.lockState = _cursorLocked ? CursorLockMode.Locked : CursorLockMode.None; //locking/unlocking } }