private void UpdateButtonDataNearTouch(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.Digital); OculusApi.RawNearTouch interactionButton = OculusApi.RawNearTouch.None; Enum.TryParse <OculusApi.RawNearTouch>(interactionMapping.InputName, out interactionButton); if (interactionButton != OculusApi.RawNearTouch.None) { if (((OculusApi.RawNearTouch)previousState.NearTouches & interactionButton) != 0) { interactionMapping.BoolData = false; } if ((((OculusApi.RawNearTouch)currentState.NearTouches & interactionButton) != 0) && (((OculusApi.RawNearTouch)previousState.NearTouches & interactionButton) == 0)) { interactionMapping.BoolData = true; } interactionMapping.UpdateInteractionMappingBool(InputSource, ControllerHandedness); } }
private void UpdateButtonDataNearTouch(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.Digital); OculusApi.RawNearTouch interactionButton = OculusApi.RawNearTouch.None; OculusInteractionMapping.TryParseRawNearTouch(interactionMapping, out interactionButton); //Enum.TryParse<OculusApi.RawNearTouch>(interactionMapping.InputName, out interactionButton); if (interactionButton != OculusApi.RawNearTouch.None) { if (((OculusApi.RawNearTouch)previousState.NearTouches & interactionButton) != 0) { interactionMapping.BoolData = false; } if ((((OculusApi.RawNearTouch)currentState.NearTouches & interactionButton) != 0) && (((OculusApi.RawNearTouch)previousState.NearTouches & interactionButton) == 0)) { interactionMapping.BoolData = true; } //interactionMapping.UpdateInteractionMappingBool(InputSource, ControllerHandedness); //if (interactionMapping.Changed) //{ // if (interactionMapping.BoolData) // { // InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); // } // else // { // InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); // } //} } }
public static bool TryParseRawNearTouch(MixedRealityInteractionMapping mapping, out OculusApi.RawNearTouch nearTouch) { nearTouch = OculusApi.RawNearTouch.None; if (mapping.AxisType != AxisType.Digital) { return(false); } if (mapping.InputType == DeviceInputType.TriggerNearTouch) { if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_13) { nearTouch = OculusApi.RawNearTouch.LIndexTrigger; return(true); } if (mapping.AxisCodeY == ControllerMappingLibrary.AXIS_14) { nearTouch = OculusApi.RawNearTouch.RIndexTrigger; return(true); } if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_17) { nearTouch = OculusApi.RawNearTouch.LThumbButtons; return(true); } if (mapping.AxisCodeY == ControllerMappingLibrary.AXIS_18) { nearTouch = OculusApi.RawNearTouch.RThumbButtons; return(true); } } return(false); }