Unity UI 이벤트 시스템
이 문서에서는 Unity의 UI 이벤트 시스템에 대해 설명합니다. 이벤트 시스템을 통해 사용자와의 상호작용을 효율적으로 처리할 수 있습니다. 다양한 이벤트를 지원하며, 사용자 정의 입력 모듈을 통해 추가적인 기능을 구현하는 것이 가능합니다.
이벤트 시스템 기본 개념
Unity의 이벤트 시스템은 여러 인터페이스를 통해 다양한 사용자 입력 이벤트를 처리합니다. 주요 인터페이스와 그 기능은 다음과 같습니다.
인터페이스 | 이벤트 메서드 | 설명 |
---|---|---|
IPointerEnterHandler | OnPointerEnter | 포인터가 오브젝트에 들어갈 때 호출됩니다. |
IPointerExitHandler | OnPointerExit | 포인터가 오브젝트에서 나올 때 호출됩니다. |
IPointerDownHandler | OnPointerDown | 포인터가 오브젝트 위에서 눌렸을 때 호출됩니다. |
IPointerUpHandler | OnPointerUp | 포인터를 뗄 때 호출됩니다. |
IPointerClickHandler | OnPointerClick | 동일 오브젝트에서 포인터를 누르고 뗄 때 호출됩니다. |
IInitializePotentialDragHandler | OnInitializePotentialDrag | 드래그 타켓이 발견되었을 때 호출됩니다. |
IBeginDragHandler | OnBeginDrag | 드래그가 시작되는 시점에 호출됩니다. |
IDragHandler | OnDrag | 드래그 오브젝트가 드래그되는 동안 호출됩니다. |
IEndDragHandler | OnEndDrag | 드래그가 종료됐을 때 호출됩니다. |
IDropHandler | OnDrop | 드래그를 멈췄을 때 호출됩니다. |
IScrollHandler | OnScroll | 마우스 휠을 스크롤했을 때 호출됩니다. |
IUpdateSelectedHandler | OnUpdateSelected | 선택한 오브젝트에서 매 틱마다 호출됩니다. |
ISelectHandler | OnSelect | 오브젝트를 선택하는 순간 호출됩니다. |
IDeselectHandler | OnDeselect | 선택한 오브젝트를 선택 해제할 때 호출됩니다. |
IMoveHandler | OnMove | 이동 이벤트가 발생했을 때 호출됩니다. |
ISubmitHandler | OnSubmit | 전송 버튼이 눌렸을 때 호출됩니다. |
ICancelHandler | OnCancel | 취소 버튼이 눌렸을 때 호출됩니다. |
활용 및 응용 예제
이벤트 시스템의 다양한 기능을 활용해 보세요. 각 이벤트는 다양한 게임 오브젝트의 상호작용을 정의하는 데 유용합니다.
1. 포인터 이벤트 처리
- UI 버튼에
IPointerClickHandler
를 구현하여 버튼 클릭 시 알림 메시지를 표시하는 기능 추가.
2. 드래그 앤 드롭
- 드래그를 통해 오브젝트를 이동시키는 기능을 구현.
IDragHandler
,IEndDragHandler
,IDropHandler
를 활용해 드래그 기능을 설정 할 수 있습니다.
3. 스크롤 이벤트 처리
- 커스텀 리스너를 생성하여 마우스 스크롤 시 특정 아이템의 오프셋을 변경할 수 있습니다.
4. 선택 및 해제 기능
ISelectHandler
와IDeselectHandler
를 사용하여 선택된 오브젝트의 색상을 변경하는 기능을 구현할 수 있습니다.
결론
Unity의 UI 이벤트 시스템은 매우 강력하고 유연하게 설계되어 있습니다. 이를 통해 개발자는 사용자의 입력을 효과적으로 처리할 수 있으며, 다양한 형태의 상호작용을 손쉽게 구현할 수 있습니다. Unity API를 활용하여 더 많은 기능을 실험해 보세요.