본문 바로가기

개발/TIP

[C#,UI] 마우스 or 터치 입력 포지션이 UI 위에 있는지 체크하기

개요

스마트폰 모바일 게임 개발할 때 조작 방법으로 마우스 혹은 터치 입력이 주로 사용됩니다.

단말기에서 사용할 수 있는 조작 방법으로 터치가 유일하기 때문입니다.

터치 입력을 이용하여 기능을 제작할 때 UI와 터치가 겹치는 상황이 빈번히 발생하는데요.

터치 입력 포지션이 UI 위에 있는지 체크하여, 위에 있을 때는 기능을 하지 않도록 막으면 해결할 수 있어요.


사용방법

터치 입력 포지션이 UI 위에 있는지 체크하기 위해서 EventSystems 라이브러리를 참조해야합니다.


using UnityEngine.EventSystems;

예제) 마우스 입력 시

public class InputTest : MonoBehaviour {
    void Update () {
        // 입력 포지션이 UI 오브젝트 위에 있는지 체크
        if(EventSystem.current.IsPointerOverGameObject()) {
            return; // 아래 마우스 기능을 하지 않고 리턴
        }

        if(Input.GetMouseButtonDown(0)) {
            Debug.Log("Mouse Button Down!");
        }
    }
}