UI 클릭 시 다른 오브젝트가 클릭될 때

[Unity] UI 클릭 시 다른 오브젝트가 클릭될 때

클릭이벤트를 이용하는 오브젝트 위에 안내 메시지창을 뜨게 하거나, 이미지가 뜰 경우

UI에 막혀 클릭이 안될거라고 생각한 오브젝트가 클릭 이벤트를 처리하는 상황이 발생할 수 있다.

이럴 땐

① Inspector창에서 사용되는 Image의 Raycast Target을 체크해준다.

Raycast Target은 z축 방향으로 ray를 쏠 때 광선이 닿는대상이 될 것인지 아닌지를 결정한다.

② 마우스 클릭 처리를 하는 코드를 작성할 때 IsPointerOverGameObject()를 이용해준다.

IsPointerOverGameObject()는 UI가 클릭되면 True, 그렇지 않다면 false를 반환한다.

1
using UnityEngine.EventSystems;

마우스 클릭을 처리하는 부분에 IsPointerOverGameObject() 메소드를 이용하여 작성해주면 된다.

1
2
3
4
5
6
7
private void OnMouseDown()
{
if(!EventSystem.current.IsPointerOverGameObject())
{
//입력 처리 내용
}
}