#nullable enable using System; using UnityEngine; using UnityEngine.EventSystems; namespace UVC.UI.List { /// /// 개별 드래그 가능한 아이템의 UI 컴포넌트 /// 드래그 동작과 시각적 피드백을 담당 /// public class DraggableItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { // 이벤트 public Action? OnBeginDragEvent; public Action? OnDragEvent; public Action? OnEndDragEvent; /// /// 드래그 시작 시 호출 /// public void OnBeginDrag(PointerEventData eventData) { OnBeginDragEvent?.Invoke(eventData); } /// /// 드래그 중 호출 /// public void OnDrag(PointerEventData eventData) { // 이벤트 발생 OnDragEvent?.Invoke(eventData); } /// /// 드래그 종료 시 호출 /// public void OnEndDrag(PointerEventData eventData) { // 이벤트 발생 OnEndDragEvent?.Invoke(eventData); } void OnDestroy() { // 이벤트 구독 해제 OnBeginDragEvent = null; OnDragEvent = null; OnEndDragEvent = null; } } }