유니티 이벤트 핸들러를 이용한 오브젝트 드래그

2020. 8. 24. 20:36유니티실습

반응형
728x170

안녕하세요 유니티 비기너입니다.

이번 시간에는 이벤트 핸들러를 이용한 오브젝트를 드래그하는 방법에 대해 알아보겠습니다.

 

결과 화면

콘솔 창을 통해 각각의 이벤트 핸들러가 동작중인 것을 확인할 수 있습니다.

 

 

스크립트

using UnityEngine;
using UnityEngine.EventSystems;

public class ButtonController : MonoBehaviour, IDragHandler, IEndDragHandler, IPointerDownHandler {

    public void OnPointerDown(PointerEventData eventData) {
        Debug.Log("OnPointerDown");
        OnDrag(eventData);
    }

    public void OnDrag(PointerEventData eventData) {
        Debug.Log("OnDrag");
        transform.position = eventData.position;
    }

    public void OnEndDrag(PointerEventData eventData) {
        Debug.Log("OnEndDrag");
    }
}

 

각각의 핸들러들은(IDragHandler, IEndDragGandler, IPointerDownHandler)

Interface로 구성되어 있기 때문에 속해있는 메서드를 반드시 사용해야 합니다.

IPointerDownHandler

포인터가 다운될 때 호출된다.

IDragHandler

드래그가 발생하는 경우 커서가 움직일 때마다 호출됩니다.

IEndDragHandler 

드래그 종료 시 호출됩니다.

위의 핸들러 이벤트들은 오브젝트의 이미지 컴포넌트의 Raycast target이 비활성화되어있거나
EventSystem 오브젝트의 EventSystem 컴포넌트가 존재하지 않으면 동작하지 않습니다.

반응형
그리드형