호빵의 IT 개발소

[유니티] 이벤트시스템(EventSystem) 본문

C#, 유니티/유니티엔진 기초

[유니티] 이벤트시스템(EventSystem)

호빵Stack 2022. 7. 5. 00:32

이벤트시스템(EventSystem)

  • 호출하려는 이벤트 담당하는 인터페이스 상속, 인터페이스의 이벤트 함수 오버라이딩
using UnityEngine.EventSystems;

 

클릭 - IPointerClickHandler

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        if (eventData.button == PointerEventData.InputButton.Right)
        {
            // 우클릭 사용 시 아이템 소모
        }
    }
}
  • 함수 : OnPointerClick(PointerEventData eventData) - 스크립트가 붙은 오브젝트에 마우스를 클릭 이벤트 발생 시 호출

 

드래그 - IBeginDragHandler, IDragHandler, IEndDragHandler

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    // 드래그를 시작할 때 실행되는 이벤트
    public void OnBeginDrag(PointerEventData eventData)
    {

    }

    // 드래그 중일 때 이벤트
    public void OnDrag(PointerEventData eventData)
    {

    }

    // 드래그 종료 이벤트 (드래그가 끝나기만 하면 호출)
    public void OnEndDrag(PointerEventData eventData)
    {

    }
}
  • 함수 : OnBeginDrag(PointerEventData eventData) -  마우스 드래그를 시작 했을 때 호출
  • 함수 : OnDrag(PointerEventData eventData) - 마우스 드래그 중인 동안 계속 호출
  • 함수 : OnEndDrag(PointerEventData eventData)- 마우스 드래그 하는 것을 끝냈을 때 호출

 

드롭 - IDropHandler

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IDropHandler
{
    // 드래그 종료 이벤트 (다른 슬롯 위에서 드래그가 끝났을 때 호출)
    public void OnDrop(PointerEventData eventData)
    {
        
    }
}
  • 함수 : OnDrop(PointerEventData eventData) - 마우스 드롭 이벤트가 발생 했을때 호출

 

마우스 커서가 해당 위치에 있을 때 -  IPointerEnterHandler

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IPointerEnterHandler
{
    // 마우스가 아이템이 있는 슬롯에 들어갈때 툴팁 UI 활성화
    public void OnPointerEnter(PointerEventData eventData)
    {

    }
}
  • 함수 : OnPointerEnter(PointerEventData eventData) - 마우스 커서가 해당 위치 위에 있으면 호출

 

마우스 커서가 해당 위치에서 빠져나왔을 때 -  IPointerEnterHandler

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IPointerExitHandler
{
    // 아이템이 있는 슬롯에서 마우스가 나갔을때 툴팁 UI 비활성화
    public void OnPointerExit(PointerEventData eventData)
    {

    }
}
  • 함수 : OnPointerExit(PointerEventData eventData) - 마우스 커서가 해당 위치에서 빠져 나왔다면 호출

 

 

참고 및 참조 : 

https://ansohxxn.github.io/unitydocs/unityengine-eventsystems/

'C#, 유니티 > 유니티엔진 기초' 카테고리의 다른 글

[유니티] Rigidbody  (0) 2022.07.05
[유니티] 선형 보간 Lerp  (0) 2022.07.05
[유니티] 정규화(normalized)  (0) 2022.07.05
[유니티] Euler, Quaternion  (0) 2022.07.04
[유니티] NGUI, UGUI, DOTween  (0) 2022.06.29
Comments