public override void OnEndDrag(PointerEventData eventData) { canvasGroup.blocksRaycasts = true; dragTransform = null; transform.position += (transform.forward * forwardOffset); bool validDragEnd = true; if (restrictToDropZone) { if (validDropZone != null && validDropZone != startDropZone) { transform.SetParent(validDropZone.transform); } else { ResetElement(); validDragEnd = false; } } Canvas destinationCanvas = (eventData.pointerEnter != null ? eventData.pointerEnter.GetComponentInParent <Canvas>() : null); if (restrictToOriginalCanvas) { if (destinationCanvas != null && destinationCanvas != startCanvas) { ResetElement(); validDragEnd = false; } } if (destinationCanvas == null) { //We've been dropped off of a canvas ResetElement(); validDragEnd = false; Destroy(gameObject); } if (validDragEnd) { VRTK.VRTK_UIPointer pointer = GetPointer(eventData); if (pointer != null) { pointer.OnUIPointerElementDragEnd(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, gameObject)); } OnDraggableItemDropped(SetEventPayload(validDropZone)); } validDropZone = null; startParent = null; startCanvas = null; }
// Token: 0x06001AAB RID: 6827 RVA: 0x0008C940 File Offset: 0x0008AB40 public virtual void OnEndDrag(PointerEventData eventData) { this.canvasGroup.blocksRaycasts = true; this.dragTransform = null; base.transform.position += base.transform.forward * this.forwardOffset; bool flag = true; if (this.restrictToDropZone) { if (this.validDropZone != null && this.validDropZone != this.startDropZone) { base.transform.SetParent(this.validDropZone.transform); } else { this.ResetElement(); flag = false; } } Canvas x = (eventData.pointerEnter != null) ? eventData.pointerEnter.GetComponentInParent <Canvas>() : null; if (this.restrictToOriginalCanvas && x != null && x != this.startCanvas) { this.ResetElement(); flag = false; } if (x == null) { this.ResetElement(); flag = false; } if (flag) { VRTK_UIPointer pointer = this.GetPointer(eventData); if (pointer != null) { pointer.OnUIPointerElementDragEnd(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, base.gameObject, null)); } this.OnDraggableItemDropped(this.SetEventPayload(this.validDropZone)); } this.validDropZone = null; this.startParent = null; this.startCanvas = null; }
public virtual void OnEndDrag(PointerEventData eventData) { canvasGroup.blocksRaycasts = true; dragTransform = null; transform.position += (transform.forward * forwardOffset); bool validDragEnd = true; if (restrictToDropZone) { if (validDropZone != null && validDropZone != startDropZone) { // Instantiate this object and attach it instead of. if (duplicateOnDrag) { // One clone can be created at the same time, do not clone this item. if (oneCloneAtMost && GetComponent <FoodState>() && GetComponent <FoodState>().clone != null) { ResetElement(); validDragEnd = false; } else if (oneCloneAtMost && GetComponent <FoodStateGroup>() && GetComponent <FoodStateGroup>().clone != null) { ResetElement(); validDragEnd = false; } // Clone this item else { GameObject cloneObject = GameObject.Instantiate(this.gameObject); // Clone FoodState Component if (cloneObject.GetComponent <FoodState>()) { cloneObject.GetComponent <FoodState>().Clone(GetComponent <FoodState>()); } // Clone FoodGroup Component else if (cloneObject.GetComponent <FoodStateGroup>()) { cloneObject.GetComponent <FoodStateGroup>().Clone(GetComponent <FoodStateGroup>()); } // Clone PseudoAction Component else if (cloneObject.GetComponent <PseudoAction>()) { cloneObject.GetComponent <PseudoAction>().Clone(GetComponent <PseudoAction>()); } // Set new clone as cannot be duplicated, and can be removed by dropping to empty zone. if (cloneObject.GetComponent <VRTK_UIDraggableItem>().cantDuplicateAfterDrag) { cloneObject.GetComponent <VRTK_UIDraggableItem>().duplicateOnDrag = false; cloneObject.GetComponent <VRTK_UIDraggableItem>().removeOnDropEmptyZone = true; } // Set new clone as cloneable again else { cloneObject.GetComponent <VRTK_UIDraggableItem>().duplicateOnDrag = true; } ///////// RECIPE UI SPECIFIC CODE // TODO: FIX THIS cloneObject.transform.SetParent(validDropZone.transform, false); cloneObject.GetComponent <RectTransform>().anchoredPosition3D = Vector3.zero; cloneObject.GetComponent <RectTransform>().localRotation = Quaternion.Euler(Vector3.zero); cloneObject.GetComponent <VRTK_UIDraggableItem>().enabled = true; ///////// ResetElement(); validDragEnd = false; } } else { transform.SetParent(validDropZone.transform); } } else { ResetElement(); validDragEnd = false; } } Canvas destinationCanvas = (eventData.pointerEnter != null ? eventData.pointerEnter.GetComponentInParent <Canvas>() : null); if (restrictToOriginalCanvas) { if (destinationCanvas != null && destinationCanvas != startCanvas) { ResetElement(); validDragEnd = false; } } if (destinationCanvas == null) { //////// RECIPE UI SPECIFIC CODE // TODO: FIX THIS if (removeOnDropEmptyZone) { Step s = null; if (gameObject.transform.parent.parent.GetComponent <Step>()) { s = gameObject.transform.parent.parent.GetComponent <Step>(); } if (GetComponent <Text>()) { Destroy(GetComponent <Text>()); } Destroy(gameObject); if (s != null) { s.StepChanged(); } } /////////// //We've been dropped off of a canvas ResetElement(); validDragEnd = false; } if (validDragEnd) { VRTK_UIPointer pointer = GetPointer(eventData); if (pointer != null) { pointer.OnUIPointerElementDragEnd(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, gameObject)); } OnDraggableItemDropped(SetEventPayload(validDropZone)); } validDropZone = null; startParent = null; startCanvas = null; }