Unity 매뉴얼: 이벤트 시스템 관리자
이 문서는 Unity의 이벤트 시스템 관리자에 대한 설명입니다. 이벤트 시스템 관리자는 UI 상호작용을 처리하는 핵심 요소로, 사용자가 입력할 수 있는 모든 이벤트를 관리합니다. 이 문서에서는 기본 기능과 프로퍼티에 대해 설명하고, 이를 활용하는 몇 가지 예를 들어보겠습니다.
이벤트 시스템 관리자란?
이벤트 시스템 관리자는 Unity에서 UI 요소와의 상호작용을 처리하는 다양한 기능을 제공합니다. 이 시스템은 다음과 같은 역할을 합니다:
- 어떤 입력 모듈이 활성화될 것인지 결정
- 선택된 게임 오브젝트를 관리
- 여러 고급 시스템 개념 조정
이벤트 시스템은 매 프레임마다 호출되어 활성화 된 입력 모듈을 확인하고, 필요한 처리를 할당합니다.
주요 프로퍼티
프로퍼티 | 기능 |
---|---|
First Selected | 처음 선택된 게임 오브젝트를 지정합니다. |
Send Navigation Events | 이동, 제출, 취소와 같은 내비게이션 이벤트의 허용 여부를 설정합니다. |
Drag Threshold | 드래그하기 위한 픽셀 단위의 소프트 영역을 설정합니다. |
활용 및 응용 예제
UI 버튼 클릭 처리
사용자가 버튼을 클릭할 때 특정 작업을 수행하기 위해 이벤트 시스템을 활용할 수 있습니다. 다음은 버튼 클릭 시 사용자의 이름을 출력하는 간단한 예제입니다.
using UnityEngine;
using UnityEngine.UI;
public class ButtonClickHandler : MonoBehaviour
{
public Button yourButton;
void Start()
{
yourButton.onClick.AddListener(TaskOnClick);
}
void TaskOnClick()
{
Debug.Log("버튼이 클릭되었습니다!");
}
}
드래그 이벤트
UI 요소를 드래그할 수 있도록 설정하려면 드래그 관련 프로퍼티를 적절히 조정하여 이벤트를 수신하고 처리할 수 있습니다.
using UnityEngine;
using UnityEngine.EventSystems;
public class DragHandler : MonoBehaviour, IDragHandler
{
public void OnDrag(PointerEventData eventData)
{
transform.position += (Vector3)eventData.delta;
}
}
내비게이션 키 처리
사용자가 키보드의 화살표 키를 사용할 때 UI 요소를 탐색할 수 있도록 설정하는 방법입니다.
using UnityEngine;
using UnityEngine.EventSystems;
public class NavigationKeyHandler : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
// 위 방향으로 내비게이션 처리
}
else if (Input.GetKeyDown(KeyCode.DownArrow))
{
// 아래 방향으로 내비게이션 처리
}
}
}
마무리
이벤트 시스템 관리자는 Unity의 UI 요소와 상호작용을 쉽게 구축할 수 있도록 도와줍니다. 기본적인 프로퍼티와 제공되는 기능을 잘 활용하면 복잡한 UI도 쉽게 구현할 수 있습니다. 이 문서에서 제시한 예제를 바탕으로 다양한 UI 시스템을 개발해 보시기 바랍니다.