Ejemplo n.º 1
0
        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);
        }