728x90
Panel클릭시 UI Drag 소개합니다.
우선 아래와 같이 패널하나를 추가합니다.
만들어둔 Panel안에 컴포넌트로 cs파일을 추가합니다. 저는 cs 파일이름을 UI_DragPanel로 정의 했습니다.
UI_DragPanel.cs 정의
1. IBeginDragHandler, IDragHandler을 사용하여 구현 방법
IBeginDragHandler - UI 요소, 예를 들어 버튼이나 이미지와 같은 UI 구성 요소나 객체와 상호 작용할 때 드래그 작업이 시작되었을 때를 감지하고 응답하는 데 사용됩니다.
IDragHandler - IDragHandler는 UI 요소의 드래그 작업 중에 이벤트를 감지하고 응답하기 위한 인터페이스입니다. 드래그 작업 중에 UI 요소가 이동하거나 다른 동작을 수행하는 등의 상호 작용을 처리하는 데 사용됩니다.
using UnityEngine;
using UnityEngine.EventSystems;
public class UI_DragPanel : MonoBehaviour, IDragHandler, IBeginDragHandler
{
Vector2 _moveBegin;
Vector2 _startingPoint;
public void OnBeginDrag(PointerEventData eventData)
{
_moveBegin = eventData.position;
_startingPoint = this.transform.position;
}
public void OnDrag(PointerEventData eventData)
{
Vector2 moveOffset = eventData.position - _moveBegin;
this.transform.position = _startingPoint + moveOffset;
}
}
2. IDragHandler만 사용
using UnityEngine;
using UnityEngine.EventSystems;
public class UI_DragPanel : MonoBehaviour, IDragHandler
{
RectTransform m_transform = null;
void Start()
{
m_transform = GetComponent<RectTransform>();
}
public void OnDrag(PointerEventData eventData)
{
m_transform.position += new Vector3(eventData.delta.x, eventData.delta.y);
}
}
728x90
'Unity' 카테고리의 다른 글
[Unity] LINE CHART 그래프 만들기 (2) 그래프에 라벨 숫자 넣기 (1) | 2023.11.20 |
---|---|
[Unity] LINE CHART 그래프 만들기 (1) (0) | 2023.11.20 |
[Unity] Unity 프로빌더 Probuilder (0) | 2023.10.11 |
[Unity] 유니티 오브젝트 Fake Null과 Null 처리 (0) | 2023.07.13 |
[Unity] 미니맵 만드는 방법 (0) | 2023.07.04 |