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; } } }
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; } } }
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; } } }