//-->

        /// <summary>
        /// Get Boolean Button State
        /// </summary>
        /// <param name="pressType"></param>
        /// <param name="buttonAction"></param>
        /// <returns></returns>
        public bool GetBooleanButtonState(SDK_BaseController.ButtonPressTypes pressType, SteamVR_Action_Boolean buttonAction)
        {
            if (buttonAction == null)
            {
                return(false);
            }

            switch (pressType)
            {
            case SDK_BaseController.ButtonPressTypes.Touch:
            case SDK_BaseController.ButtonPressTypes.Press:
                return(buttonAction[HandType].state);

            case SDK_BaseController.ButtonPressTypes.TouchDown:
            case SDK_BaseController.ButtonPressTypes.PressDown:
                return(buttonAction[HandType].stateDown);

            case SDK_BaseController.ButtonPressTypes.TouchUp:
            case SDK_BaseController.ButtonPressTypes.PressUp:
                return(buttonAction[HandType].stateUp);

            default:
                return(false);
            }
        }
示例#2
0
        // Token: 0x0600133E RID: 4926 RVA: 0x0006BB3C File Offset: 0x00069D3C
        protected virtual bool IsButtonPressed(uint index, SDK_BaseController.ButtonPressTypes type, ulong button)
        {
            if (index >= 4294967295U)
            {
                return(false);
            }
            SteamVR_Controller.Device device = SteamVR_Controller.Input((int)index);
            switch (type)
            {
            case SDK_BaseController.ButtonPressTypes.Press:
                return(device.GetPress(button));

            case SDK_BaseController.ButtonPressTypes.PressDown:
                return(device.GetPressDown(button));

            case SDK_BaseController.ButtonPressTypes.PressUp:
                return(device.GetPressUp(button));

            case SDK_BaseController.ButtonPressTypes.Touch:
                return(device.GetTouch(button));

            case SDK_BaseController.ButtonPressTypes.TouchDown:
                return(device.GetTouchDown(button));

            case SDK_BaseController.ButtonPressTypes.TouchUp:
                return(device.GetTouchUp(button));

            default:
                return(false);
            }
        }
示例#3
0
        // Token: 0x06001302 RID: 4866 RVA: 0x0006AE44 File Offset: 0x00069044
        protected virtual bool IsButtonPressed(uint index, SDK_BaseController.ButtonPressTypes type, KeyCode button)
        {
            this.SetupPlayer();
            if (index >= 4294967295U)
            {
                return(false);
            }
            if (index == 1U)
            {
                if (!this.rightController.Selected)
                {
                    return(false);
                }
            }
            else
            {
                if (index != 2U)
                {
                    return(false);
                }
                if (!this.leftController.Selected)
                {
                    return(false);
                }
            }
            switch (type)
            {
            case SDK_BaseController.ButtonPressTypes.Press:
                return(Input.GetKey(button));

            case SDK_BaseController.ButtonPressTypes.PressDown:
                return(Input.GetKeyDown(button));

            case SDK_BaseController.ButtonPressTypes.PressUp:
                return(Input.GetKeyUp(button));

            default:
                return(false);
            }
        }
示例#4
0
        // Token: 0x06001339 RID: 4921 RVA: 0x0006B908 File Offset: 0x00069B08
        public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(false);
            }
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.ButtonOne:
                return(this.IsButtonPressed(realIndex, pressType, 128UL));

            case SDK_BaseController.ButtonTypes.ButtonTwo:
                return(this.IsButtonPressed(realIndex, pressType, 2UL));

            case SDK_BaseController.ButtonTypes.Grip:
                return(this.IsButtonPressed(realIndex, pressType, 4UL));

            case SDK_BaseController.ButtonTypes.StartMenu:
                return(this.IsButtonPressed(realIndex, pressType, 1UL));

            case SDK_BaseController.ButtonTypes.Trigger:
                return(this.IsButtonPressed(realIndex, pressType, 8589934592UL));

            case SDK_BaseController.ButtonTypes.TriggerHairline:
                if (pressType == SDK_BaseController.ButtonPressTypes.PressDown)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerDown());
                }
                if (pressType == SDK_BaseController.ButtonPressTypes.PressUp)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerUp());
                }
                break;

            case SDK_BaseController.ButtonTypes.Touchpad:
                return(this.IsButtonPressed(realIndex, pressType, 4294967296UL));
            }
            return(false);
        }
 public static bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
 {
     return(GetControllerSDK().GetControllerButtonState(buttonType, pressType, controllerReference));
 }
        //-->

        /// <summary>
        /// Is Button Action Touch?
        /// </summary>
        /// <param name="pressType"></param>
        /// <returns></returns>
        private bool IsButtonActionTouch(SDK_BaseController.ButtonPressTypes pressType)
        {
            return((pressType != SDK_BaseController.ButtonPressTypes.Press) &&
                   (pressType != SDK_BaseController.ButtonPressTypes.PressDown) &&
                   (pressType != SDK_BaseController.ButtonPressTypes.PressUp));
        }
        //-->

        /// <summary>
        /// Get Button State
        /// </summary>
        /// <param name="buttonType"></param>
        /// <param name="pressType"></param>
        /// <returns></returns>
        public bool GetButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType)
        {
            SteamVR_Action_Boolean buttonAction = null;

            if (!IsButtonActionTouch(pressType))
            {
                // Button Press, Press Down, Press Up
                switch (buttonType)
                {
                case SDK_BaseController.ButtonTypes.Trigger:
                    buttonAction = TriggerButton;
                    break;

                case SDK_BaseController.ButtonTypes.Grip:
                    buttonAction = GripButton;
                    break;

                case SDK_BaseController.ButtonTypes.Touchpad:
                    buttonAction = TouchpadButton;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonOne:
                    buttonAction = ButtonOneClick;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonTwo:
                    buttonAction = ButtonTwoClick;
                    break;

                case SDK_BaseController.ButtonTypes.StartMenu:
                    buttonAction = ButtonStartMenuClick;
                    break;

                case SDK_BaseController.ButtonTypes.TouchpadTwo:
                    buttonAction = TouchpadTwoButton;
                    break;
                }
            }
            else
            {
                // Button Touch, Touch Down, Touch Up
                switch (buttonType)
                {
                case SDK_BaseController.ButtonTypes.Trigger:
                    buttonAction = TriggerTouch;
                    break;

                case SDK_BaseController.ButtonTypes.Grip:
                    buttonAction = GripTouch;
                    break;

                case SDK_BaseController.ButtonTypes.Touchpad:
                    buttonAction = TouchpadTouch;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonOne:
                    buttonAction = ButtonOneTouch;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonTwo:
                    buttonAction = ButtonTwoTouch;
                    break;

                case SDK_BaseController.ButtonTypes.TouchpadTwo:
                    buttonAction = TouchpadTwoTouch;
                    break;
                }
            }

            return(buttonAction != null && GetBooleanButtonState(pressType, buttonAction));
        }
示例#8
0
 // Token: 0x0600125A RID: 4698
 public abstract bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference);
示例#9
0
 // Token: 0x06001301 RID: 4865 RVA: 0x0006AD80 File Offset: 0x00068F80
 protected virtual bool GetControllerButtonState(uint index, string keyMapping, SDK_BaseController.ButtonPressTypes pressType)
 {
     if (pressType == SDK_BaseController.ButtonPressTypes.Touch)
     {
         return(this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.Press, this.keyMappings[keyMapping]));
     }
     if (pressType == SDK_BaseController.ButtonPressTypes.TouchDown)
     {
         return(this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.PressDown, this.keyMappings[keyMapping]));
     }
     if (pressType == SDK_BaseController.ButtonPressTypes.TouchUp)
     {
         return(this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.PressUp, this.keyMappings[keyMapping]));
     }
     if (pressType == SDK_BaseController.ButtonPressTypes.Press)
     {
         return(!this.IsButtonPressIgnored() && this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.Press, this.keyMappings[keyMapping]));
     }
     if (pressType == SDK_BaseController.ButtonPressTypes.PressDown)
     {
         return(!this.IsButtonPressIgnored() && this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.PressDown, this.keyMappings[keyMapping]));
     }
     return(pressType == SDK_BaseController.ButtonPressTypes.PressUp && !this.IsButtonPressIgnored() && this.IsButtonPressed(index, SDK_BaseController.ButtonPressTypes.PressUp, this.keyMappings[keyMapping]));
 }
示例#10
0
        // Token: 0x060012FA RID: 4858 RVA: 0x0006ABF4 File Offset: 0x00068DF4
        public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.ButtonOne:
                return(this.GetControllerButtonState(realIndex, "ButtonOne", pressType));

            case SDK_BaseController.ButtonTypes.ButtonTwo:
                return(this.GetControllerButtonState(realIndex, "ButtonTwo", pressType));

            case SDK_BaseController.ButtonTypes.Grip:
            case SDK_BaseController.ButtonTypes.GripHairline:
                return(this.GetControllerButtonState(realIndex, "Grip", pressType));

            case SDK_BaseController.ButtonTypes.StartMenu:
                return(this.GetControllerButtonState(realIndex, "StartMenu", pressType));

            case SDK_BaseController.ButtonTypes.Trigger:
            case SDK_BaseController.ButtonTypes.TriggerHairline:
                return(this.GetControllerButtonState(realIndex, "Trigger", pressType));

            case SDK_BaseController.ButtonTypes.Touchpad:
                return(this.GetControllerButtonState(realIndex, "TouchpadPress", pressType));

            default:
                return(false);
            }
        }
示例#11
0
 // Token: 0x060012A7 RID: 4775 RVA: 0x000694A8 File Offset: 0x000676A8
 public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
 {
     return(false);
 }