마우스 입력 처리 총정리

 

[본 포스트의 내용은 유튜브 영상으로도 시청하실 수 있습니다]

 

마우스는 PC의 중요한 입력장치 중 하나로 PC를 타깃으로 하는 게임이라면 십중팔구는 마우스에 대한 입력처리가 필수적이다. 이번 섹션에서는 마우스 입력 처리하는 방법에 대해서 알아보자.

 

마우스를 통해서 들어오는 입력은 세 가지 정도로 나눌 수 있다. 버튼 입력, 위치 센서 입력, 스크롤휠 입력이 그것이다.

 

마우스 버튼 입력 처리

 

첫 번째로 알아볼 입력 처리는 버튼에 대한 입력 처리다.

 

마우스 버튼에 대한 입력은 일반적으로 Down, Hold, Up 이 세 가지 과정으로 나누어져서 처리된다. Down은 버튼을 누르는 순간을 의미하고 Hold는 누른 상태로 유지하는 것, Up은 눌려진 버튼을 떼는 것을 의미한다.

 

bool Input.GetMouseButtonDown(int button);
bool Input.GetMouseButton(int button);
bool Input.GetMouseButtonUp(int button);

 

유니티에서는 Input 클래스의 GetMouseButtonDown(), GetMouseButton(), GetMouseButtonUp() 함수를 통해서 버튼의 입력을 확인할 수 있는데, 이 함수들의 사용 예시는 다음과 같다.

 

void Update ()
{
    if (Input.GetMouseButtonDown(0))
    {
        // 마우스 왼쪽 버튼을 눌렀을 때의 처리
    }

    if (Input.GetMouseButton(0))
    {
        // 마우스 왼쪽 버튼을 누르고 있는 도중의 처리
    }

    if (Input.GetMouseButtonUp(0))
    {
        // 마우스 왼쪽 버튼을 뗄 때의 처리
    }
}

 

이 함수들의 매개변수에는 버튼의 번호가 들어가는데, 각 번호가 의미하는 마우스 버튼은 다음과 같다.

 

0 : 마우스 왼쪽 버튼

1 : 마우스 오른쪽 버튼

2 : 마우스 휠 버튼

3~6 : 마우스에 달린 추가 버튼

 

 

 

 

마우스 커서 위치 처리

 

게임에서는 마우스 커서 위치를 확인하는 것도 굉장히 많이 사용되는 편이다. 마우스 커서 위치는 다음과 같이 가져올 수 있다.

 

void Update()
{
    Vector3 mousePos = Input.mousePosition;
}

 

참고로 프로그램 화면의 왼쪽 아래가 (0, 0)이다.

 

 

 

마우스 휠 입력 처리

 

최근에 사용되는 마우스의 경우에는 기본으로 휠이 장착되어 있다. 휠 동작의 경우에는 휠을 돌리면 화면이 위/아래로 스크롤된다거나, 화면이 확대/축소 되는 방식으로 지원된다.

 

마우스 휠 입력을 처리하는 방법은 두 가지가 있는데 그 예시는 다음과 같다.

 

void Update()
{
    float wheelInput = Input.GetAxis("Mouse ScrollWheel");
    if (wheelInput > 0)
    {
        // 휠을 밀어 돌렸을 때의 처리 ↑
    }
    else if (wheelInput < 0)
    {
        // 휠을 당겨 올렸을 때의 처리 ↓
    }

    Vector2 wheelInput2 = Input.mouseScrollDelta;
    if (wheelInput2.y > 0)
    {
        // 휠을 밀어 돌렸을 때의 처리 ↑
    }
    else if (wheelInput2.y < 0)
    {
        // 휠을 당겨 올렸을 때의 처리 ↓
    }
}

 

추가로, 휠을 한 틱 돌렸을 때, 변경되는 값은 0.1이다.

반응형

+ Recent posts