프로그래밍/유니티

[유니티] UI 클릭 등 이벤트 처리

갓똥 2020. 12. 10. 11:21
728x90
반응형

2D오브젝트나 3D오브젝트에 마우스를 호버하는 기능이나 클릭해서 어떠한 동작을 구현할 땐

OnMouseDown, Up, Drag, Enter, Exit으로 처리가 가능했다.

 

하지만 UI는 위의 함수들을 등록해놔도 먹히지 않는다.

 

UI는 Canvas에 Graphic Raycaster라는 것이 있다.

이것이 UI의 모든 포인터 이벤트를 관리하게 된다.

 

사용방법은 간단하다.

 

1. using UnityEngine.EventSystems;

2. 여러가지 인터페이스 중 사용할 것을 고른다. (여러개 동시 사용도 가능하다.)

3. 선언한 인터페이스를 구현한다.

 

using UnityEngine;
using UnityEngine.EventSystems;

public class UIEventTest : MonoBehaviour
    , IPointerClickHandler
    , IDragHandler
    , IPointerEnterHandler
    , IPointerExitHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("Click");
    }
    
    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("Drag");
    }
    
    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("Enter");
    }
    
    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("Exit");
    }
}
728x90
반응형