이것들의 목적 : 마우스가 어떤 팝업 UI 위에 존재하는 가를 확인하기 위하여
EventTrigger
- 이벤트 시스템에서 이벤트를 수신하고 각 이벤트에 대해 등록된 함수를 호출
- 이벤트 시스템 이벤트에 대해 호출할 함수를 지정하는 데 사용할 수 있습니다.
- 여러 함수를 할당할 수 있으며
- 게임 오브젝트에 Event Trigger 컴포넌트를 연결하면 해당 오브젝트가 모든 이벤트를 가로채며, 이 오브젝트에서는 더 이상 이벤트 버블링이 발생하지 않습니다.
이벤트 버블링
EventSystem
- Canvas 내에 있는 이미지들에 대한
Delegate 이벤트들을 받아들이는 역할
- 이벤트 시스템이 있어야만
이벤트 트리거가 작동
- 하는 일
- 어떤 게임 오브젝트를 선택할지 관리
- 어떤 입력 모듈을 사용할지 관리
- 레이캐스팅 관리(필요 시)
- 필요에 따라 모든 입력 모듈 업데이트
- 이벤트 시스템이 있어야만
- 스크립트 상에서 동적으로 이벤트 트리거 추가
- 작성 순서
Entry 생성
Entry의 이벤트 타입 설정
Entry에 이벤트 함수 추가
EventTrigger 함수에 Entry 추가
예제 스크립트
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class EventTriggerSample : MonoBehaviour { void Start () { EventTrigger eventTrigger = gameObject.AddComponent<EventTrigger>(); EventTrigger.Entry entry_PointerDown = new EventTrigger.Entry(); entry_PointerDown.eventID = EventTriggerType.PointerDown; entry_PointerDown.callback.AddListener((data) => { OnPointerDown((PointerEventData)data); }); eventTrigger.triggers.Add(entry_PointerDown); EventTrigger.Entry entry_Drag = new EventTrigger.Entry(); entry_Drag.eventID = EventTriggerType.Drag; entry_Drag.callback.AddListener((data) => { OnDrag((PointerEventData)data); }); eventTrigger.triggers.Add(entry_Drag); EventTrigger.Entry entry_EndDrag = new EventTrigger.Entry(); entry_EndDrag.eventID = EventTriggerType.EndDrag; entry_EndDrag.callback.AddListener((data) => { OnEndDrag((PointerEventData)data); }); eventTrigger.triggers.Add(entry_EndDrag); } void OnPointerDown(PointerEventData data) { Debug.Log("Pointer Down"); } void OnDrag(PointerEventData data) { Debug.Log("Drag"); } void OnEndDrag(PointerEventData data) { Debug.Log("End Drag"); } }
- 작성 순서
PointerEventData
EventSystems.PointerEventData - Unity 스크립팅 API
Event payload associated with pointer (mouse / touch) events.

Uploaded by N2T