private bool getAirVRPointerData(AirVRPointer pointer, int pointerId, out AirVRPointerEventData data, bool create) { if (_pointerData.ContainsKey(pointer.GetHashCode()) == false || _pointerData[pointer.GetHashCode()].TryGetValue(pointerId, out data) == false) { if (create) { if (_pointerData.ContainsKey(pointer.GetHashCode()) == false) { _pointerData.Add(pointer.GetHashCode(), new Dictionary <int, AirVRPointerEventData>()); } data = new AirVRPointerEventData(eventSystem) { pointerId = pointer.GetHashCode() }; _pointerData[pointer.GetHashCode()].Add(pointerId, data); return(true); } else { data = null; } } return(false); }
private void copyAirVRPointerEventData(AirVRPointerEventData from, AirVRPointerEventData to) { to.position = from.position; to.delta = from.delta; to.scrollDelta = from.scrollDelta; to.pointerCurrentRaycast = from.pointerCurrentRaycast; to.pointerEnter = from.pointerEnter; to.worldSpaceRay = from.worldSpaceRay; }
private void processAirVRInputEvents() { foreach (AirVRPointer pointer in AirVRPointer.pointers) { if (pointer.interactable) { var eventData = getAirVRPointerEventData(pointer); processMouseEvent(eventData); AirVRPointerEventData leftButtonData = eventData.GetButtonState(PointerEventData.InputButton.Left).eventData.buttonData as AirVRPointerEventData; pointer.UpdateRaycastResult(leftButtonData.worldSpaceRay, leftButtonData.pointerCurrentRaycast); } } }