public override void OnBeginDrag(PointerEventData eventData) { base.OnBeginDrag(eventData); if (IsDraggable) { droppedOnZone = false; if (DropZoneBelow != null) { DropZoneBelow.OnItemBeginDrag(this); } gameObject.layer = LayerMask.NameToLayer(ignoreRaycastLayerName); //This is needed, because otherwise after setting the parent, the zone's OnPointerExit will not be called eventData.pointerEnter = transform.parent.gameObject; transform.parent = Camera.main.transform; //This is needed, because sometimes OnDropPlaceExit called before OnbeginDrag if (!AboveDropZone) { DropZoneBelow.OnDroppableAboveExit(this); } //dropPlaceBelow = transform.parent.GetComponent<DropPlace>(); } }
public override void OnDrag(PointerEventData eventData) { base.OnDrag(eventData); if (DropZoneBelow != null) { DropZoneBelow.OnItemDrag(this); } }
protected override void OnBeforeDrag(PointerEventData eventData) { base.OnBeforeDrag(eventData); if (IsDraggable) { IsDraggable = false; if (DropZoneBelow != null) { DropZoneBelow.OnItemBeforeDrag(this); } } }
public override void OnEndDrag(PointerEventData eventData) { base.OnEndDrag(eventData); gameObject.layer = defaultLayer; if (DropZoneBelow != null) { DropZoneBelow.OnItemEndDrag(this); } if (!droppedOnZone) { onDropFailed.Invoke(); } }