반응형
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 컴포넌트가 존재하지 않으면 동작하지 않습니다.
반응형
그리드형
'유니티실습' 카테고리의 다른 글
유니티 Invoke를 활용한 시간 지연 (0) | 2020.11.03 |
---|---|
유니티 씬 전환 시 큐브가 어둡게 나오는 경우 처리방법 (0) | 2020.10.19 |
유니티 동영상 재생시켜보기 (0) | 2020.08.18 |
유니티 2D 애니메이션 블렌드 트리 사용해보기 (0) | 2020.07.28 |
유니티 애니메이션 되감기 역재생 해보기 (0) | 2020.07.27 |