Exemple #1
0
        // Stylus.
        public float GetAxis(StylusAxisInput stylusAxisInput)
        {
            SteamVR_Action_Single actionSinglePrimary;
            SteamVR_Action_Single actionSingleNib;

            if (_touchStripRejection && _stylusAxisToSteamVrMap.TryGetValue(StylusAxisInput.Primary, out actionSinglePrimary) && _stylusAxisToSteamVrMap.TryGetValue(StylusAxisInput.Tip, out actionSingleNib))
            {
                UpdateStateMachine(actionSinglePrimary.GetAxis(InputSource), actionSingleNib.GetAxis(InputSource), _touchpadValue.GetAxis(InputSource).x, _touchpadValue.GetAxis(InputSource).y);
            }

            if (stylusAxisInput == StylusAxisInput.TrackpadX && GetRejectionStatus(stylusAxisInput))
            {
                return(_touchpadValue.GetAxis(InputSource).x);
            }
            if (stylusAxisInput == StylusAxisInput.TrackpadY && GetRejectionStatus(stylusAxisInput))
            {
                return(_touchpadValue.GetAxis(InputSource).y);
            }

            SteamVR_Action_Single actionSingle;

            if (_stylusAxisToSteamVrMap.TryGetValue(stylusAxisInput, out actionSingle) && GetRejectionStatus(stylusAxisInput))
            {
                return(actionSingle.GetAxis(InputSource));
            }
            return(0);
        }
Exemple #2
0
        // Debug touchstrip rejection.
        private bool GetRejectionStatus(StylusAxisInput axisType)
        {
            if (!_touchStripRejection)
            {
                return(true);
            }
            if (axisType == StylusAxisInput.Grip)
            {
                return(true);
            }
            switch (_rejectionState)
            {
            case EButtonRejectionState.Neither:
                return(false);

            case EButtonRejectionState.Primary_Analog_Only:
                if (axisType == StylusAxisInput.Primary || axisType == StylusAxisInput.Tip)
                {
                    return(true);
                }
                return(false);

            case EButtonRejectionState.TouchStrip_Delay:
                return(false);

            case EButtonRejectionState.TouchStrip_Only:
                if (axisType == StylusAxisInput.TrackpadX || axisType == StylusAxisInput.TrackpadY)
                {
                    return(true);
                }
                return(false);

            case EButtonRejectionState.TouchStrip_Only_Lock:
                if (axisType == StylusAxisInput.TrackpadX || axisType == StylusAxisInput.TrackpadY)
                {
                    return(true);
                }
                return(false);

            case EButtonRejectionState.TouchStrip_After_Delay:
                return(false);
            }
            return(true);
        }
        private string GetAxisString(StylusAxisInput stylusAxisInput)
        {
            var mapToUse = _axesToJoystickMapRight;

            if (StylusHand == Handedness.NonDominant)
            {
                mapToUse = _axesToJoystickMapLeft;
            }
            string native;

            if (mapToUse.TryGetValue(stylusAxisInput, out native))
            {
                return(native);
            }
            else
            {
                Debug.LogErrorFormat("No native Unity axis could be found for {0}", stylusAxisInput);
                return(null);
            }
        }
        public float GetAxis(StylusAxisInput stylusAxisInput)
        {
            var native = GetAxisString(stylusAxisInput);

            return(Input.GetAxisRaw(native));
        }
Exemple #5
0
 public AxisValueProvider(TrackedDeviceProvider trackedDeviceProvider, StylusAxisInput stylusAxisInput)
 {
     TrackedDeviceProvider = trackedDeviceProvider;
     StylusAxisInput       = stylusAxisInput;
 }
Exemple #6
0
 public float GetAxis(StylusAxisInput stylusAxisInput)
 {
     return(Controller.GetAxis(stylusAxisInput));
 }