프로그래밍/유니티
[유니티] 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
반응형