using UnityEngine; using UnityEngine.EventSystems; // Drag Dropable public class InventoryItem : MonoBehaviour, IPointerDownHandler, IBeginDragHandler, IEndDragHandler { [SerializeField] private Canvas canvas; public GameItem GameItem; private RectTransform _rectTransform; private CanvasGroup canvasGroup; private void Awake() { _rectTransform = GetComponent(); canvasGroup = GetComponent(); } // Update is called once per frame private void Update() { } public void OnBeginDrag(PointerEventData eventData) { canvasGroup.alpha = 0.6f; canvasGroup.blocksRaycasts = false; } /*public void OnDrop(PointerEventData eventData) { }*/ public void OnEndDrag(PointerEventData eventData) { canvasGroup.alpha = 1.0f; canvasGroup.blocksRaycasts = true; } public void OnPointerDown(PointerEventData eventData) { Debug.Log("OnPointerDown"); } public void SetItem(GameItem item) { GameItem = item; } public void OnDrag(PointerEventData eventData) { _rectTransform.anchoredPosition += eventData.delta / canvas.scaleFactor; } }