protected void CleanUpRaycaster(Pointer3DRaycaster raycaster) { raycaster.CleanUpRaycast(); var hoverEventData = raycaster.HoverEventData; // hover event hoverEventData.pointerCurrentRaycast = default(RaycastResult); if (hoverEventData.pointerEnter != null) { HandlePointerExitAndEnter(hoverEventData, null); } // buttons event for (int i = 0, imax = raycaster.ButtonEventDataList.Count; i < imax; ++i) { var buttonEventData = raycaster.ButtonEventDataList[i]; if (buttonEventData == null) { continue; } buttonEventData.Reset(); buttonEventData.pointerCurrentRaycast = default(RaycastResult); ProcessPressUp(buttonEventData); if (buttonEventData.pointerEnter != null) { HandlePointerExitAndEnter(buttonEventData, null); } } }
protected void CleanUpRaycaster(Pointer3DRaycaster raycaster) { if (raycaster == null) { return; } var hoverEventData = raycaster.HoverEventData; if (hoverEventData == null || raycaster.ButtonEventDataList.Count == 0) { return; } hoverEventData.Reset(); // buttons event for (int i = 0, imax = raycaster.ButtonEventDataList.Count; i < imax; ++i) { var buttonEventData = raycaster.ButtonEventDataList[i]; if (buttonEventData == null || buttonEventData == hoverEventData) { continue; } buttonEventData.Reset(); if (buttonEventData.eligibleForClick) { ProcessPressUp(buttonEventData); HandlePressExitAndEnter(buttonEventData, null); } if (buttonEventData.pointerEnter != null) { if (i == 0) { // perform exit event for hover event data HandlePointerExitAndEnter(buttonEventData, null); } else { buttonEventData.pointerEnter = null; } } } raycaster.CleanUpRaycast(); for (int i = 0, imax = raycaster.ButtonEventDataList.Count; i < imax; ++i) { raycaster.ButtonEventDataList[i].pointerPressRaycast = default(RaycastResult); raycaster.ButtonEventDataList[i].pointerCurrentRaycast = default(RaycastResult); } }