본문 바로가기

Unity

유니티(Unity) - 클릭 이벤트

반응형

유니티 2d나 3d에서 오브젝트에 간편하게 클릭 처리를 할 수 있는 클릭 이벤트에 대해 알아보겠습니다. 

 

우선 레이어(Layers)를 하나 추가해 주세요 아래 이미지처럼 "Test"라는 레이어를 추가했습니다.

 

그리고 카메라에 Physics Raycaster Component를 추가해 줍니다. 

Event Mask에 위에서 새롭게 추가한 Test 레이어를 선택해 주세요.

 

클릭 처리를 하고 싶은 오브젝트를 하나 생성해 주시고

해당 오브젝트의 레이어를 Test로 변경합니다.

ClickObject.cs를 해당 오브젝트에 추가해 줍니다.

 

using UnityEngine;
using UnityEngine.EventSystems;

public class ClickObject : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        print("클릭 확인");
    }
}

 

클릭될 오브젝트에서 IPointerClickHandler이라는 interface만 추가해 주시면

카메라에 추가된 Physics Raycaster Component에서 클릭된 곳에서 오브젝트가 있고

해당 오브젝트가 Physics Raycaster에서 설정된 레이어를 가지고 있으며

또한 해당 오브젝트가 IPointerClickHandler 라는 interface를 가지고 있다면

OnPointerClick() 메서드를 실행시켜 줍니다.

 

 

게임을 실행 후 해당 오브젝트를 클릭 시 위 이미지처럼  잘 처리되고 있습니다.

 

** 혹 클릭 메시지 출력 안 되면 EventSystem 없을 수 있으니 

Hierarchy에 추가해 주세요 EventSystem는 UI안에 보시면 있습니다.

그래도 문제가 있다 하시면 해당 오브젝트에 Collider가 있나 보시고 없으시면 추가 **

반응형