OnPointer
OnPointer 는 유니티의 UI 이벤트 시스템에서 사용되는 함수 중 하나입니다.
이 함수는 UI 요소에 대한 포인터(마우스, 터치 등) 이벤트가 발생했을 때 자동으로 호출되는 콜백(callback) 함수입니다.
OnPointerEnter / OnPointerExit
OnPointer 함수는 포인터 이벤트에 따라 다양한 형태로 오버라이딩 될 수 있습니다. 예를 들어, OnPointerEnter 함수는 포인터가 UI 요소에 들어갈 때 호출되며, OnPointerExit 함수는 포인터가 UI 요소를 벗어날 때 호출됩니다.
이러한 OnPointer 함수들은 PointerEventData라는 매개변수를 받습니다.
이 매개변수는 포인터 이벤트에 대한 정보를 담고 있으며, 이를 통해 UI 요소에 대한 이벤트 처리를 할 수 있습니다.
OnPointer 함수들은 주로 UI 요소의 상호작용을 처리하는데 사용됩니다.
예를 들어, 버튼 클릭, 드래그 앤 드롭 등의 UI 이벤트 처리에 많이 사용됩니다.
드래그 앤 드롭(아이템창, 장비창 등) 코드 예시
드래그 앤 드롭 기능을 구현하기 위해서는 먼저 UI 요소의 이벤트 시스템을 사용해야 합니다. 유니티에서는 UI 요소에 대한 이벤트를 처리하기 위해 EventSystem과 InputModule이라는 두 가지 구성 요소를 제공합니다.
드래그 앤 드롭 기능을 구현하는 코드 예시는 다음과 같습니다.
이 코드는 "DragAndDrop" 클래스를 생성하여, 해당 클래스에서 "IDragHandler"와 "IEndDragHandler" 인터페이스를 구현하도록 합니다. "IDragHandler"와 "IEndDragHandler"는 각각 드래그 이벤트와 드롭 이벤트를 처리하기 위한 인터페이스입니다.
"public void OnBeginDrag(PointerEventData eventData)" 함수는 드래그 이벤트가 시작될 때 호출되는 콜백 함수입니다. 여기서는 드래그 이벤트가 시작되면 UI 요소를 드래그 중인 상태로 변경하고, 드래그가 시작된 UI 요소의 초기 위치와 부모를 저장합니다.
"public void OnDrag(PointerEventData eventData)" 함수는 드래그 이벤트가 지속적으로 발생할 때 호출되는 콜백 함수입니다. 여기서는 드래그 이벤트가 발생할 때마다 UI 요소의 위치를 마우스 위치로 변경합니다.
"public void OnEndDrag(PointerEventData eventData)" 함수는 드롭 이벤트가 발생했을 때 호출되는 콜백 함수입니다. 여기서는 드롭 이벤트가 발생한 UI 요소가 다른 UI 요소 위에 있으면 해당 UI 요소의 자식 요소로 설정하고, 다른 UI 요소 위에 없으면 초기 위치로 이동시킵니다.
* 드래그 앤 드롭 기능을 구현하기 위해서는 해당 스크립트를 UI 요소에 추가해야 합니다. UI 요소에 스크립트를 추가하려면 해당 요소의 Inspector 창에서 "Add Component" 버튼을 누르고, 스크립트 이름을 입력하면 됩니다. 이후, UI 요소를 드래그하면 코드에서 정의한 동작이 실행됩니다.
'유니티 개발일지' 카테고리의 다른 글
유니티 게임 점수 기록 / 데이터 저장 및 불러오기 PlayerPrefs (0) | 2023.04.28 |
---|---|
유니티 캐릭터 점프 구현 Rigidbody / AddForce / ForceMode.Impulse (1) | 2023.04.28 |
유니티 IsPointerOverGameObject() / Touch / Input.GetTouch (1) | 2023.04.27 |
유니티 Raycast Target 사용 예시 (0) | 2023.04.27 |
유니티 Raycast 역할, 메서드 종류, 필요성, 코드 활용 예시 (0) | 2023.04.26 |
댓글