Develog
로그인

[Unity] Event Trigger Component

muchan
muchan
∙2026년 8월 17일∙조회 8
Unity
[Unity] Event Trigger Component
유니티 공부 기록
본문 로딩 중...
이전 글[Unity] #if, #endif
다음 글[Unity] 튜토리얼 설계
0
muchan

게임 버그도 콘텐츠입니다.

댓글 0

Event Trigger란?

Unity UI 컴포넌트로 마우스 이벤트(들어옴, 나감, 클릭, 드래그 등)를 인스펙터에서 함수에 연결해주는 부품이다

쓰는 이유

유니티 버튼을 하나 만들면 기본적으로 Button 컴포넌트가 붙고 OnClick이라는 버튼을 눌렀을 때 호출할 이벤트 필드가 자동으로 생성된다.

하지만 버튼은 마우스 커서가 올라갈 때, 커서가 벗어날 때, 누르고 있을 때 등 다양한 상황이 있고 그 상황에 이벤트를 호출하고 싶을 때 Event Trigger를 사용한다. 버튼 뿐만 아니라 이미지나 슬라이더 등 Unity에서 지원하는 UI 오브젝트들 모두 적용할 수 있다.

적용하기

현재 진행중인 프로젝트에서 경영 공간에 건물들이 있는데 버튼을 누르면 해당 건물로 이동하는 기능을 추가했다. 원래는 아이콘만 넣으려고 했는데, 아이콘만 보기엔 뭐가 무슨 건물인지 잘 안보여서 버튼에 마우스를 올렸을 때 건물 이름만 보이게 작업했다.

코드

csharp
public class BuildingShortcutBar : MonoBehaviour
{
    [SerializeField] private Entry[] _entries;     // 건물 6개
    [SerializeField] private GameObject _tooltipPanel;
    [SerializeField] private TextMeshProUGUI _tooltipText;

    // EventTrigger의 PointerEnter가 버튼 순번으로 호출한다.
    public void ShowTooltip(int index)
    {
        if (_tooltipPanel == null || index < 0 || index >= _entries.Length) return;

        _tooltipText.text = ResolveName(_entries[index].focus);
        _tooltipPanel.SetActive(true);
        FollowCursor(); // 첫 프레임부터 커서에 붙어 나오도록
    }

    // EventTrigger의 PointerExit가 호출한다.
    public void HideTooltip()
    {
        if (_tooltipPanel != null) _tooltipPanel.SetActive(false);
    }
}

마우스가 버튼에 올라갈 때, 마우스가 버튼에서 나갈 때 적용할 함수를 적어준다. 라벨 띄우고 사라지게 하는 코드다

EventTrigger 컴포넌트 추가

버튼에 Event Trigger 컴포넌트를 추가하고 Add New Event Type으로 Pointer Enter와 Pointer Exit을 추가한다

6개 모두 잘 나오는것을 확인할 수 있다. (마우스 올리면 나오고 빠지면 안보입니다)

Event Trigger Type

Add New Type을 하면 해당 항목들이 나오는데 각각 역할은 아래 표와 같다

포인터

이벤트언제
PointerEnter커서가 올라옴 — 툴팁·하이라이트
PointerExit커서가 벗어남
PointerDown버튼을 누른 순간
PointerUp뗀 순간 (밖에서 떼도 발생)
PointerClick같은 오브젝트에서 누르고 뗌 = 진짜 클릭

드래그

이벤트언제
InitializePotentialDrag드래그 후보가 됨 (누른 직후, 아직 안 움직임)
BeginDrag임계 거리를 넘어 드래그 시작
Drag드래그 중 매 프레임
EndDrag드래그 끝
Drop받는 쪽에서 발생 — 드래그된 게 내 위에 놓임
Scroll휠 굴림

선택 (EventSystem의 "현재 선택된 UI")

이벤트언제
Select선택됨 (탭·클릭·코드)
Deselect선택 해제됨
UpdateSelected선택된 동안 매 프레임
Move방향키·스틱 입력 — 게임패드 UI 이동
Submit확인 키 (기본 Enter/스페이스, 게임패드 A)
Cancel취소 키 (기본 Esc, 게임패드 B)

 

 

 

새 글이 올라오면 Develog 알림으로 알려드려요

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.

관련 글

[Unity] 제네릭의 컴파일

[Unity] 제네릭의 컴파일

ㅇㅇ

10월 7일42
[Unity] 제네릭과 가변성(variance)

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

10월 6일821
[Unity] IEnumerator 개요

[Unity] IEnumerator 개요

코루틴에이저포에버

10월 6일4
[Unity] 제네릭의 컴파일
Unity

NEW[Unity] 제네릭의 컴파일

ㅇㅇ

KYO
KYO
420
KYO
KYO
∙10월 7일
420
[Unity] 제네릭과 가변성(variance)
Unity

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

KYO
KYO
821
KYO
KYO
∙10월 6일
821
[Unity] IEnumerator 개요
Unity

[Unity] IEnumerator 개요

코루틴에이저포에버

KYO
KYO
400
KYO
KYO
∙10월 6일
400