유니티 EventTrigger

EventTrigger 컴포넌트란?

Event Trigger 컴포넌트는 다양한 UI 이벤트를 감지하고 이에 대응할 수 있게 도와줍니다.
 
Event Trigger 컴포넌트를 사용하면 Pointer Click , Pointer 입력, Pointer 종료, Pointer  Down, Pointer Up 등과 같은 여러 이벤트를 스크립트의 다양한 함수나 메서드에 바인딩할 수 있습니다.
 


Pointer Events 종류

  1. Pointer Enter : 이 이벤트는 포인터(마우스 커서 또는 손가락)가 UI 요소의 경계에 들어갈 때 발생합니다.
  2. Pointer Exit : 이 이벤트는 포인터가 UI 요소의 경계를 벗어날 때 발생합니다.
  3. Pointer Down : UI 요소에서 포인터를 눌렀을 때 발생하는 이벤트입니다.
  4. Pointer Up : UI 요소를 누른 후 포인터를 놓을 때 발생하는 이벤트입니다.
  5. Pointer Click : 이 이벤트는 UI 요소에서 포인터를 눌렀다가 떼어내면 클릭이 트리거 될 때 발생합니다.
  6. Drag Events : 슬라이더와 같은 요소에 포인터 드래그, 포인터 시작 드래그, 포인터 끝 드래그와 같은 드래그와 관련된 이벤트를 사용할 수도 있습니다.

그 외에도 아래 나와 있는 것처럼 Move, Submit 등 더 많은 기능이 있으니 따로 확인하시길 바랍니다!

Pointer Events을 선택할 수 있다.


Event Trigger 스크립트

Event Trigger구성요소는 스크립트로 작성할 수 있습니다.

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class ButtonColorChanger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    private Button button;
    private Color originalColor;

    private void Start()
    {
        // Cache the Button component and its original color
        button = GetComponent<Button>();
        originalColor = button.colors.normalColor;
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        // Change the color when the pointer enters the button
        ColorBlock colors = button.colors;
        colors.normalColor = Color.blue;
        button.colors = colors;
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        // Restore the original color when the pointer exits the button
        ColorBlock colors = button.colors;
        colors.normalColor = originalColor;
        button.colors = colors;
    }

    public void OnButtonClick()
    {
        // This method will be called when the button is clicked
        Debug.Log("Button clicked!");
    }
}

 

 

이 예제에서는 IPointerEnterHandler 및 IPointerExitHandler라는 두 가지 인터페이스를 구현하는 "ButtonColorChanger"라는 스크립트를 만들었습니다. 
 
이 인터페이스는 Unity Event System의 일부이며 포인터(예: 마우스 커서)가 버튼 경계에 들어오고 나가는 순간을 감지할 수 있습니다.

OnPointerEnterOnPointerExit 메서드를 사용하여 포인터가 들어올 때 버튼의 색상을 파란색으로 변경하고 포인터가 나갈 때 원래 색상으로 돌아갑니다.
 
또한 버튼을 클릭하면 호출되는 OnButtonClick 메서드를 추가했습니다.
 
이벤트 트리거를 사용하여 이 메서드를 버튼의 "On Click" 이벤트에 연결해줍니다.
 
버튼을 클릭하면 "ButtonColorChanger" 스크립트의 OnButtonClick 메서드가 호출되고 "Button clicked!" 메시지가 콘솔에 출력됩니다.


전반적으로 이벤트 트리거 구성 요소를 사용하면 다양한 UI 이벤트에 응답할 수 있으므로 Unity에서 대화형 UI 요소를 쉽게 만들 수 있습니다.