유니티에서는 이벤트 트리거라고 하는 이벤트 딜리게이트를 제공한다.
유니티에서 아무 UI를 생성하게 되면 이벤트 시스템이 생성된다.
이벤트 시스템은 Canvas 내에 있는 이미지들에 대한 Delegate 이벤트들을 받아들이는 역할을 한다.
이벤트 시스템이 있어야만 이벤트 트리거가 작동 된다고 생각하면 된다.
이벤트 트리거는 Component에서 생성할 수 있다.
이벤트 트리거에서 제공하는 이벤트들은 아래와 같다.
위와 같은 이벤트들을 제공하며, 사용할 이벤트를 추가하면 된다.
추가한 이벤트에서 실행하고 싶은 함수를 추가하고 싶을 때에는 우측 하단의 + 버튼을 눌러 Entry를 추가한다.
그 후에 드래그 또는 None 버튼을 클릭하여, 실행할 함수가 있는 오브젝트를 선택한다.
선택한 오브젝트 내에 있는 Component 내의 Public 함수를 선택하면 적용이 끝난다.
위처럼 에디터 내에서 이벤트 트리거를 사용하는 방법도 있지만, 동적으로 컨트롤러를 생성할 때에 스크립트 내에서 이벤트 트리거를 추가해야 할 경우도 있다.
using UnityEngine.EventSystems;
을 추가한 후에 EventTrigger Component를 추가한다.
위의 에디터에서 이벤트 트리거를 사용한 순서와 같이 스크립트 코드를 작성하면 된다.
Entry 생성
Entry의 이벤트 타입 설정
Entry에 이벤트 함수 추가
EventTrigger 함수에 Entry 추가
스크립트의 순서는 위와 같으며, Entry에 함수를 추가할 때에는 람다식을 사용하여 이벤트 함수를 추가 할 수 있다.
함수 내에서는 PointerEventData data 를 통하여 이벤트가 발생했을 때의 데이터들을 가져와 활용하면 된다.