private void Hover(VRTK_UIPointer pointer, List <RaycastResult> results) { if (pointer.pointerEventData.pointerEnter) { if (ShouldIgnoreElement(pointer.pointerEventData.pointerEnter, pointer.ignoreCanvasWithTagOrClass)) { return; } if (NoValidCollision(pointer, results)) { ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerEnter, pointer.pointerEventData, ExecuteEvents.pointerExitHandler); pointer.pointerEventData.hovered.Remove(pointer.pointerEventData.pointerEnter); pointer.pointerEventData.pointerEnter = null; } } else { foreach (var result in results) { if (ShouldIgnoreElement(result.gameObject, pointer.ignoreCanvasWithTagOrClass)) { continue; } var target = ExecuteEvents.ExecuteHierarchy(result.gameObject, pointer.pointerEventData, ExecuteEvents.pointerEnterHandler); if (target != null) { var selectable = target.GetComponent <Selectable>(); if (selectable) { var noNavigation = new Navigation(); noNavigation.mode = Navigation.Mode.None; selectable.navigation = noNavigation; } pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(target, pointer.hoveringElement)); pointer.hoveringElement = target; pointer.pointerEventData.pointerCurrentRaycast = result; pointer.pointerEventData.pointerEnter = target; pointer.pointerEventData.hovered.Add(pointer.pointerEventData.pointerEnter); break; } else { if (result.gameObject != pointer.hoveringElement) { pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(result.gameObject, pointer.hoveringElement)); } pointer.hoveringElement = result.gameObject; } } if (pointer.hoveringElement && results.Count == 0) { pointer.OnUIPointerElementExit(pointer.SetUIPointerEvent(null, pointer.hoveringElement)); pointer.hoveringElement = null; } } }
// Token: 0x06001768 RID: 5992 RVA: 0x0007D2F0 File Offset: 0x0007B4F0 protected virtual void Hover(VRTK_UIPointer pointer, List <RaycastResult> results) { if (pointer.pointerEventData.pointerEnter) { this.CheckPointerHoverClick(pointer, results); if (!this.ValidElement(pointer.pointerEventData.pointerEnter)) { pointer.pointerEventData.pointerEnter = null; return; } if (this.NoValidCollision(pointer, results)) { ExecuteEvents.ExecuteHierarchy <IPointerExitHandler>(pointer.pointerEventData.pointerEnter, pointer.pointerEventData, ExecuteEvents.pointerExitHandler); pointer.pointerEventData.hovered.Remove(pointer.pointerEventData.pointerEnter); pointer.pointerEventData.pointerEnter = null; return; } } else { foreach (RaycastResult raycastResult in results) { if (this.ValidElement(raycastResult.gameObject)) { GameObject gameObject = ExecuteEvents.ExecuteHierarchy <IPointerEnterHandler>(raycastResult.gameObject, pointer.pointerEventData, ExecuteEvents.pointerEnterHandler); if (gameObject != null) { Selectable component = gameObject.GetComponent <Selectable>(); if (component) { component.navigation = new Navigation { mode = Navigation.Mode.None }; } pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(raycastResult, gameObject, pointer.hoveringElement)); pointer.hoveringElement = gameObject; pointer.pointerEventData.pointerCurrentRaycast = raycastResult; pointer.pointerEventData.pointerEnter = gameObject; pointer.pointerEventData.hovered.Add(pointer.pointerEventData.pointerEnter); break; } if (raycastResult.gameObject != pointer.hoveringElement) { pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(raycastResult, raycastResult.gameObject, pointer.hoveringElement)); } pointer.hoveringElement = raycastResult.gameObject; } } if (pointer.hoveringElement && results.Count == 0) { pointer.OnUIPointerElementExit(pointer.SetUIPointerEvent(default(RaycastResult), null, pointer.hoveringElement)); pointer.hoveringElement = null; } } }
private bool AttemptClick(VRTK_UIPointer pointer) { if (pointer.pointerEventData.pointerPress) { if (!ValidElement(pointer.pointerEventData.pointerPress)) { return(true); } if (pointer.pointerEventData.eligibleForClick) { if (!IsHovering(pointer)) { ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerUpHandler); pointer.pointerEventData.pointerPress = null; } } else { pointer.OnUIPointerElementClick(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPress)); ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerClickHandler); ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerUpHandler); pointer.pointerEventData.pointerPress = null; } return(true); } return(false); }
// Token: 0x0600176D RID: 5997 RVA: 0x0007D640 File Offset: 0x0007B840 protected virtual bool AttemptClick(VRTK_UIPointer pointer) { if (!pointer.pointerEventData.pointerPress) { return(false); } if (!this.ValidElement(pointer.pointerEventData.pointerPress)) { pointer.pointerEventData.pointerPress = null; return(true); } if (pointer.pointerEventData.eligibleForClick) { if (!this.IsHovering(pointer)) { ExecuteEvents.ExecuteHierarchy <IPointerUpHandler>(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerUpHandler); pointer.pointerEventData.pointerPress = null; } } else { pointer.OnUIPointerElementClick(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, pointer.pointerEventData.pointerPress, null)); ExecuteEvents.ExecuteHierarchy <IPointerClickHandler>(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerClickHandler); ExecuteEvents.ExecuteHierarchy <IPointerUpHandler>(pointer.pointerEventData.pointerPress, pointer.pointerEventData, ExecuteEvents.pointerUpHandler); pointer.pointerEventData.pointerPress = null; } return(true); }
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; }
// Token: 0x06001AA9 RID: 6825 RVA: 0x0008C884 File Offset: 0x0008AA84 public virtual void OnBeginDrag(PointerEventData eventData) { this.startPosition = base.transform.position; this.startRotation = base.transform.rotation; this.startParent = base.transform.parent; this.startCanvas = base.GetComponentInParent <Canvas>(); this.canvasGroup.blocksRaycasts = false; if (this.restrictToDropZone) { this.startDropZone = base.GetComponentInParent <VRTK_UIDropZone>().gameObject; this.validDropZone = this.startDropZone; } this.SetDragPosition(eventData); VRTK_UIPointer pointer = this.GetPointer(eventData); if (pointer != null) { pointer.OnUIPointerElementDragStart(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, base.gameObject, null)); } }
public virtual void OnBeginDrag(PointerEventData eventData) { startPosition = transform.position; startRotation = transform.rotation; startParent = transform.parent; startCanvas = GetComponentInParent <Canvas>(); canvasGroup.blocksRaycasts = false; if (restrictToDropZone) { startDropZone = GetComponentInParent <VRTK_UIDropZone>().gameObject; validDropZone = startDropZone; } SetDragPosition(eventData); VRTK_UIPointer pointer = GetPointer(eventData); if (pointer != null) { pointer.OnUIPointerElementDragStart(pointer.SetUIPointerEvent(pointer.pointerEventData.pointerPressRaycast, gameObject)); } }
protected virtual void Hover(VRTK_UIPointer pointer, List <RaycastResult> results) { if (pointer.pointerEventData.pointerEnter != null) { CheckPointerHoverClick(pointer, results); if (!ValidElement(pointer.pointerEventData.pointerEnter)) { pointer.pointerEventData.pointerEnter = null; return; } if (NoValidCollision(pointer, results)) { ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerEnter, pointer.pointerEventData, ExecuteEvents.pointerExitHandler); pointer.pointerEventData.hovered.Remove(pointer.pointerEventData.pointerEnter); pointer.pointerEventData.pointerEnter = null; } } else { for (int i = 0; i < results.Count; i++) { RaycastResult result = results[i]; if (!ValidElement(result.gameObject)) { continue; } GameObject target = ExecuteEvents.ExecuteHierarchy(result.gameObject, pointer.pointerEventData, ExecuteEvents.pointerEnterHandler); //target = (target == null ? result.gameObject : target); if (target != null) { Selectable selectable = target.GetComponent <Selectable>(); if (selectable != null) { Navigation noNavigation = new Navigation(); noNavigation.mode = Navigation.Mode.None; selectable.navigation = noNavigation; } if (pointer.hoveringElement != null && pointer.hoveringElement != target) { pointer.OnUIPointerElementExit(pointer.SetUIPointerEvent(result, null, pointer.hoveringElement)); } pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(result, target, pointer.hoveringElement)); pointer.hoveringElement = target; pointer.pointerEventData.pointerCurrentRaycast = result; pointer.pointerEventData.pointerEnter = target; pointer.pointerEventData.hovered.Add(pointer.pointerEventData.pointerEnter); break; } if (result.gameObject != pointer.hoveringElement) { pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(result, result.gameObject, pointer.hoveringElement)); } pointer.hoveringElement = result.gameObject; } if (pointer.hoveringElement && results.Count == 0) { pointer.OnUIPointerElementExit(pointer.SetUIPointerEvent(new RaycastResult(), null, pointer.hoveringElement)); pointer.hoveringElement = 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; }
private void Hover(VRTK_UIPointer pointer, List<RaycastResult> results) { if (pointer.pointerEventData.pointerEnter) { if (ShouldIgnoreElement(pointer.pointerEventData.pointerEnter, pointer.ignoreCanvasWithTagOrClass, pointer.canvasTagOrScriptListPolicy)) { return; } if (NoValidCollision(pointer, results)) { ExecuteEvents.ExecuteHierarchy(pointer.pointerEventData.pointerEnter, pointer.pointerEventData, ExecuteEvents.pointerExitHandler); pointer.pointerEventData.hovered.Remove(pointer.pointerEventData.pointerEnter); pointer.pointerEventData.pointerEnter = null; } } else { foreach (var result in results) { if (ShouldIgnoreElement(result.gameObject, pointer.ignoreCanvasWithTagOrClass, pointer.canvasTagOrScriptListPolicy)) { continue; } var target = ExecuteEvents.ExecuteHierarchy(result.gameObject, pointer.pointerEventData, ExecuteEvents.pointerEnterHandler); if (target != null) { var selectable = target.GetComponent<Selectable>(); if (selectable) { var noNavigation = new Navigation(); noNavigation.mode = Navigation.Mode.None; selectable.navigation = noNavigation; } pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(target, pointer.hoveringElement)); pointer.hoveringElement = target; pointer.pointerEventData.pointerCurrentRaycast = result; pointer.pointerEventData.pointerEnter = target; pointer.pointerEventData.hovered.Add(pointer.pointerEventData.pointerEnter); break; } else { if (result.gameObject != pointer.hoveringElement) { pointer.OnUIPointerElementEnter(pointer.SetUIPointerEvent(result.gameObject, pointer.hoveringElement)); } pointer.hoveringElement = result.gameObject; } } if (pointer.hoveringElement && results.Count == 0) { pointer.OnUIPointerElementExit(pointer.SetUIPointerEvent(null, pointer.hoveringElement)); pointer.hoveringElement = null; } } }