using UnityEngine; using UnityEngine.EventSystems; public class DragHandling : MonoBehaviour, IDragHandler, IEndDragHandler { private Vector3 StartingPosition; private Transform StartingParent; [HideInInspector] public bool dragged = false; public void OnDrag(PointerEventData eventData) { if (!dragged) { StartingPosition = transform.localPosition; StartingParent = transform.parent; GetComponent<CanvasGroup>().blocksRaycasts = false; dragged = true; } // display dragged object in front of all other ui transform.SetParent(GetComponentInParent<Canvas>().transform, false); transform.SetAsLastSibling(); transform.position = Input.mousePosition; } public void OnEndDrag(PointerEventData eventData) { transform.SetParent(StartingParent, false); transform.localPosition = StartingPosition; GetComponent<CanvasGroup>().blocksRaycasts = true; dragged = false; } }