private MouseState getAirXRPointerEventData(AirXRPointer pointer) { AirXRPointerEventData leftData; var created = getAirXRPointerData(pointer, kMouseLeftId, out leftData, true); leftData.Reset(); leftData.worldSpaceRay = pointer.GetWorldRay(); leftData.button = PointerEventData.InputButton.Left; leftData.scrollDelta = Vector2.zero; leftData.useDragThreshold = false; raycastForAirXRPointer(pointer, leftData, _raycastResultCache); var raycast = FindFirstRaycast(_raycastResultCache); leftData.pointerCurrentRaycast = raycast; _raycastResultCache.Clear(); var position = Vector2.zero; var airxrRaycaster = raycast.module as AirXRGraphicRaycaster; if (airxrRaycaster) { position = airxrRaycaster.GetScreenPosition(raycast); } var airxrPhysicsRaycaster = raycast.module as AirXRPhysicsRaycaster; if (airxrPhysicsRaycaster) { position = airxrPhysicsRaycaster.GetScreenPosition(raycast.worldPosition); } if (created) { leftData.position = position; } leftData.delta = position - leftData.position; leftData.position = position; AirXRPointerEventData rightData; getAirXRPointerData(pointer, kMouseRightId, out rightData, true); copyAirXRPointerEventData(leftData, rightData); rightData.button = PointerEventData.InputButton.Right; AirXRPointerEventData middleData; getAirXRPointerData(pointer, kMouseMiddleId, out middleData, true); copyAirXRPointerEventData(leftData, middleData); middleData.button = PointerEventData.InputButton.Middle; _mouseState.SetButtonState(PointerEventData.InputButton.Left, getAirXRPointerButtonState(pointer), leftData); _mouseState.SetButtonState(PointerEventData.InputButton.Right, PointerEventData.FramePressState.NotChanged, rightData); _mouseState.SetButtonState(PointerEventData.InputButton.Middle, PointerEventData.FramePressState.NotChanged, middleData); return(_mouseState); }
public void SetBodyClickTime() { seeking = true; RaycastHit hit = new RaycastHit(); if (!Physics.Raycast(pointer.GetWorldRay(), out hit)) { Debug.LogError("Not Found Panel"); return; } magnitude = (hit.point - progressStart.position).magnitude; target = progressStart.position + dir.normalized * magnitude; PlayHeadBoundCheck(); float current = magnitude / progressTotal; saveTime = current * player.clip.length; Play(); }