게임개발/Unity

[Unity] 마우스 커서 숨기기, 마우스 화면 고정(cursor visible, cursor lock)

깜냥c 2023. 12. 17. 13:11

Unity 게임을 만들다 보면, 마우스가 화면에 고정되어 있지 않아 테스트 하기에 불편함이 생긴다.

 

Unity에서 제공하는 마우스 잠금 상태를 변경하면 이러한 문제를 해결할 수 있다.

 

1. Cursor.lockState

 

Cursor.lockState:  마우스 커서의 잠금 상태를 나타내는 변수이다.

 

잠금 상태는 총 3가지로 CursorLockMode.Locked, CursorLockMode.Confined, CursorLockMode.None이 있다.

 

1) CursorLockMode.Locked: 마우스 커서를 게임 화면의 정중앙에 고정시키고 커서를 숨긴다. 게임 실행 후 화면을 클릭해야 적용된다.

 

2) CursorLockMode.Confined: 마우스 커서를 게임 화면 밖으로 나가지 않게 만든다.

*Windows와 LinuxOS에서만 되며 MaxOS에서는 지원하지 않는다.

 

3) CursorLockMode.None: 마우스 커서에 제한을 두지 않는다.

 

 

사용 방법은 아래 코드와 같다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Example : MonoBehaviour
{
     enum CursorLockState { Lock, Confine, None};

     [SerializeField] CursorLockState _cursorLock = CursorLockState.Lock;

    void Start()
    {
        switch (_cursorLock)
        {
            case CursorLockState.Lock:
                Cursor.lockState = CursorLockMode.Locked; break;
            case CursorLockState.Confine:
                Cursor.lockState = CursorLockMode.Confined; break;
            case CursorLockState.None:
                Cursor.lockState = CursorLockMode.None; break;
            default:
                break;
        }
    }
}

 

 

2. Cursor.visible

 

Cursor.visible: 마우스 커서를 화면에 보일건지 정하는 변수이다.

 

visible이 true면 보이고, false면 숨기게 된다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Example : MonoBehaviour
{
    [SerializeField] bool _setCursorVisble = false;
    private void Start()
    {
        Cursor.visible = _setCursorVisible;
    }
}

 

 

참고 링크