示例#1
0
        public PositionInputInfo GetPosition(string objectName)
        {
            PositionInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                          (PositionInputInfo)CurrentRecording.CurrentFrame.GetInputInfo(objectName) : null;

            return(inputInfo);
        }
示例#2
0
        public PositionInputInfo GetPosition(GameObject gameObject)
        {
            PositionInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                          (PositionInputInfo)CurrentRecording.CurrentFrame.GetInputInfo(gameObject.name) : null;

            return(inputInfo);
        }
示例#3
0
        public void WriteCurrentRecordToDisk(string path)
        {
            if (CurrentRecording == null)
            {
                throw new InvalidDataException("No record to save");
            }

            string recordJson = CurrentRecording.ToJson();

            File.WriteAllText(path, recordJson);
        }
示例#4
0
        /// <summary>
        /// Get the Steam VR hair trigger up state.
        /// </summary>
        /// <returns>Trigger up state.</returns>
        public bool GetHairTriggerUp()
        {
            if (CurrentInputMode == RVInputMode.Playback)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                             CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, "HairTriggerUp") : null;
                return(inputInfo == null ? false : inputInfo.HairTriggerUpState);
            }
            bool stateValue = m_DeviceImpl.GetHairTriggerUp();

            if (CurrentInputMode == RVInputMode.Record)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, "HairTriggerUp");
                if (inputInfo == null)
                {
                    inputInfo = new SteamVRInputInfo();
                }
                inputInfo.HairTriggerUpState = stateValue;
                CurrentRecording.CurrentFrame.AddInputInfo(DeviceIndex, "HairTriggerUp", inputInfo);
            }
            return(stateValue);
        }
示例#5
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);
        }
示例#6
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);
        }
示例#7
0
        /// <summary>
        /// Get the Steam VR button press down state.
        /// </summary>
        /// <param name="buttonMask">Button Mask</param>
        /// <returns>Press down state</returns>
        public bool GetPressDown(ulong buttonMask)
        {
            if (CurrentInputMode == RVInputMode.Playback)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                             CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonMask.ToString()) : null;
                return(inputInfo == null ? false : inputInfo.PressDownState);
            }
            bool stateValue = m_DeviceImpl.GetPressDown(buttonMask);

            if (CurrentInputMode == RVInputMode.Record)
            {
                SteamVRInputInfo inputInfo = CurrentRecording.CurrentFrame.GetInputInfo(DeviceIndex, buttonMask.ToString());
                if (inputInfo == null)
                {
                    inputInfo = new SteamVRInputInfo();
                }
                inputInfo.PressDownState = stateValue;
                CurrentRecording.CurrentFrame.AddInputInfo(DeviceIndex, buttonMask.ToString(), inputInfo);
            }
            return(stateValue);
        }
示例#8
0
        /// <summary>
        /// Returns the platform appropriate axis for the given name.
        /// </summary>
        /// <param name="name">Input Name</param>
        /// <returns>Axis Value</returns>
        public float GetAxis(string name)
        {
            if (CurrentInputMode == RVInputMode.Playback)
            {
                StandaloneInputInfo inputInfo = CurrentRecording.HasCurrentFrame() ?
                                                (StandaloneInputInfo)CurrentRecording.CurrentFrame.GetInputInfo(name) : null;
                return(inputInfo == null ? 0.0f : inputInfo.AxisValue);
            }
            float axisValue = Input.GetAxis(name);

            if (CurrentInputMode == RVInputMode.Record)
            {
                BaseInputInfo inputInfo = CurrentRecording.CurrentFrame.GetInputInfo(name);
                if (inputInfo == null)
                {
                    inputInfo = new StandaloneInputInfo();
                }
                StandaloneInputInfo standaloneInputInfo = (StandaloneInputInfo)inputInfo;
                standaloneInputInfo.AxisValue = axisValue;
                CurrentRecording.CurrentFrame.AddInputInfo(name, standaloneInputInfo);
            }
            return(axisValue);
        }