/// <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); }
/// <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); }