Beispiel #1
0
        /// <summary>
        /// Get the Steam VR axis value.
        /// </summary>
        /// <returns>The axis.</returns>
        /// <param name="buttonId">Button identifier.</param>
        public Vector2 GetAxis(EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
        {
            if (CurrentInputMode == RVInputMode.Playback)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                             CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonId.ToString()) : null;
                return(inputInfo == null ? Vector2.zero : inputInfo.AxisValue);
            }
            Vector2 axisValue = m_DeviceImpl.GetAxis(buttonId);

            if (CurrentInputMode == RVInputMode.Record)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonId.ToString());
                if (inputInfo == null)
                {
                    inputInfo = new SteamVRInputInfo();
                }
                inputInfo.AxisValue = axisValue;
                CurrentRecording.CurrentFrame.AddInputInfo(DeviceIndex, buttonId.ToString(), inputInfo);
            }
            return(axisValue);
        }
Beispiel #2
0
        /// <summary>
        /// Get the Steam VR button touch up state.
        /// </summary>
        /// <returns>Touch up state.</returns>
        /// <param name="buttonId">Button identifier.</param>
        public bool GetTouchUp(EVRButtonId buttonId)
        {
            if (CurrentInputMode == RVInputMode.Playback)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                             CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonId.ToString()) : null;
                return(inputInfo == null ? false : inputInfo.TouchUpState);
            }
            bool stateValue = m_DeviceImpl.GetTouchUp(buttonId);

            if (CurrentInputMode == RVInputMode.Record)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonId.ToString());
                if (inputInfo == null)
                {
                    inputInfo = new SteamVRInputInfo();
                }
                inputInfo.TouchUpState = stateValue;
                CurrentRecording.CurrentFrame.AddInputInfo(DeviceIndex, buttonId.ToString(), inputInfo);
            }
            return(stateValue);
        }