본문 바로가기
Unity

[Unity] UI 클릭 시, 다른 클릭 이벤트 막기

by Ladun 2020. 1. 30.

UI에 있는 오브젝트를 클릭했을 때 다른 클릭 이벤트가 발생하지 않도록 해야할 때가 있습니다. 예를 들어, 스타크래프트에서 UI를 클릭했는데 유닛이 움직이거나 공격한다면 곤란할 것입니다.

 

Unity에서는 Raycast를 통해 클릭이벤트를 처리합니다. 그럼 UI에서도 Raycast가 가능하게 설정한 후에 UI가 클릭되었을 때는 다른 클릭이 처리되지 않게하면 됩니다.

 

IsPointerOverGameObject() 라는 함수는 UI가 클릭되면 true를 아니면 false를 반환합니다.

이를 이용하여 다른 부분들을 처리하면 됩니다.

using UnityEngine.EventSystems;
if(Input.GetMouseButtonDown(0)) 
{
	if(!EventSystem.current.IsPointerOverGameObject())
	{  
	         //클릭 처리
	}	
}