Example #1
0
        private void LateUpdate()
        {
            //assuming controller updates happen before/in update loop?

            if (Time.time > nextUpdateTime)
            {
                RecordAnalogInputs();
                nextUpdateTime = Time.time + UpdateRate;
            }

            if (CurrentButtonStates.Count > 0)
            {
                List <ButtonState> copy = new List <ButtonState>(CurrentButtonStates.Count);
                for (int i = 0; i < CurrentButtonStates.Count; i++)
                {
                    copy.Add(CurrentButtonStates[i]);
                }
                CurrentButtonStates.Clear();
                DynamicManager.RecordControllerEvent(dynamic.DataId, copy);
            }
        }
Example #2
0
        private void Update()
        {
            if (controllerDynamic == null)
            {
                return;
            }
            //thumbstick button
            if (SvrInput.Controller.GetButtonDown(SvrController.svrControllerButton.PrimaryThumbstick))
            {
                OnButtonChanged(controllerDynamic, true, "thumbstick", true, CurrentButtonStates);
            }
            if (SvrInput.Controller.GetButtonUp(SvrController.svrControllerButton.PrimaryThumbstick))
            {
                OnButtonChanged(controllerDynamic, true, "thumbstick", false, CurrentButtonStates);
            }

            //trigger
            if (SvrInput.Controller.GetButtonDown(SvrController.svrControllerButton.PrimaryIndexTrigger))
            {
                OnButtonChanged(controllerDynamic, true, "trigger", true, CurrentButtonStates);
            }
            if (SvrInput.Controller.GetButtonUp(SvrController.svrControllerButton.PrimaryIndexTrigger))
            {
                OnButtonChanged(controllerDynamic, true, "trigger", false, CurrentButtonStates);
            }
            if (CurrentButtonStates.Count > 0)
            {
                List <ButtonState> copy = new List <ButtonState>(CurrentButtonStates.Count);
                for (int i = 0; i < CurrentButtonStates.Count; i++)
                {
                    copy[i].Copy(CurrentButtonStates[i]);
                }
                CurrentButtonStates.Clear();

                DynamicManager.RecordControllerEvent(controllerDynamic.DataId, copy);
            }
        }
Example #3
0
        //updates for interaction hand implementation
        private void Update()
        {
            if (ControllerDevice == null)
            {
                return;
            }

            //menu
            if (ControllerDevice.GetPressDown(Varjo.Valve.VR.EVRButtonId.k_EButton_ApplicationMenu))
            {
                OnButtonChanged(dynamic, isRight, "vive_menubtn", true, CurrentButtonStates);
            }
            if (ControllerDevice.GetPressUp(Varjo.Valve.VR.EVRButtonId.k_EButton_ApplicationMenu))
            {
                OnButtonChanged(dynamic, isRight, "vive_menubtn", false, CurrentButtonStates);
            }

            //home ?? doesn't record event correctly
            //if (ControllerDevice.GetPressDown(EVRButtonId.k_EButton_Dashboard_Back))
            //    OnButtonChanged(dynamic, isRight, "vive_homebtn", true);
            //if (ControllerDevice.GetPressUp(EVRButtonId.k_EButton_Dashboard_Back))
            //    OnButtonChanged(dynamic, isRight, "vive_homebtn", false);

            //grip
            if (ControllerDevice.GetPressDown(Varjo.Valve.VR.EVRButtonId.k_EButton_Grip))
            {
                OnButtonChanged(dynamic, isRight, "vive_grip", true, CurrentButtonStates);
            }
            if (ControllerDevice.GetPressUp(Varjo.Valve.VR.EVRButtonId.k_EButton_Grip))
            {
                OnButtonChanged(dynamic, isRight, "vive_grip", false, CurrentButtonStates);
            }

            {
                //touchpad touched/pressed
                if (ControllerDevice.GetPressDown(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad))
                {
                    CurrentTouchpadState = TouchpadState.Press;
                    var     touchpadaxis  = ControllerDevice.GetAxis(Varjo.Valve.VR.EVRButtonId.k_EButton_Axis0);
                    var     x             = touchpadaxis.x;
                    var     y             = touchpadaxis.y;
                    int     force         = 100;
                    Vector3 currentVector = new Vector3(x, y, force);
                    OnVectorChanged(dynamic, isRight, "vive_touchpad", force, touchpadaxis, CurrentButtonStates);
                    LastTouchpadVector = currentVector;
                }
                else if (ControllerDevice.GetTouchDown(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad))
                {
                    CurrentTouchpadState = TouchpadState.Touch;
                    var     touchpadaxis  = ControllerDevice.GetAxis(Varjo.Valve.VR.EVRButtonId.k_EButton_Axis0);
                    var     x             = touchpadaxis.x;
                    var     y             = touchpadaxis.y;
                    int     force         = 50;
                    Vector3 currentVector = new Vector3(x, y, force);
                    OnVectorChanged(dynamic, isRight, "vive_touchpad", force, touchpadaxis, CurrentButtonStates);
                    LastTouchpadVector = currentVector;
                }
                else if (ControllerDevice.GetPressUp(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad))
                {
                    CurrentTouchpadState = TouchpadState.Touch;
                    var touchpadaxis = ControllerDevice.GetAxis(Varjo.Valve.VR.EVRButtonId.k_EButton_Axis0);
                    var x            = touchpadaxis.x;
                    var y            = touchpadaxis.y;

                    int force = 0;
                    if (ControllerDevice.GetTouch(Varjo.Valve.VR.EVRButtonId.k_EButton_Axis0))
                    {
                        force = 50;
                    }
                    Vector3 currentVector = new Vector3(x, y, force);
                    OnVectorChanged(dynamic, isRight, "vive_touchpad", force, touchpadaxis, CurrentButtonStates);
                    LastTouchpadVector = currentVector;
                }
                else if (ControllerDevice.GetTouchUp(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad))
                {
                    CurrentTouchpadState = TouchpadState.None;
                    var     touchpadaxis  = ControllerDevice.GetAxis(Varjo.Valve.VR.EVRButtonId.k_EButton_Axis0);
                    var     x             = touchpadaxis.x;
                    var     y             = touchpadaxis.y;
                    int     force         = 0;
                    Vector3 currentVector = new Vector3(x, y, force);
                    OnVectorChanged(dynamic, isRight, "vive_touchpad", force, touchpadaxis, CurrentButtonStates);
                    LastTouchpadVector = currentVector;
                }
            }

            //trigger clicked
            if (ControllerDevice.GetPressDown(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger))
            {
                if (LastTrigger != 100)
                {
                    var triggeramount  = ControllerDevice.GetAxis(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger).x;
                    int currentTrigger = (int)(triggeramount * 100);
                    LastTrigger = currentTrigger;
                    OnButtonChanged(dynamic, isRight, "vive_trigger", true, CurrentButtonStates);
                }
            }
            else if (ControllerDevice.GetPressUp(Varjo.Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger))
            {
                if (LastTrigger != 0)
                {
                    LastTrigger = 0;
                    OnButtonChanged(dynamic, isRight, "vive_trigger", false, CurrentButtonStates);
                }
            }

            if (Time.time > nextUpdateTime)
            {
                RecordAnalogInputs(); //should this go at the end? double inputs on triggers
                nextUpdateTime = Time.time + UpdateRate;
            }

            if (CurrentButtonStates.Count > 0)
            {
                List <ButtonState> copy = new List <ButtonState>(CurrentButtonStates.Count);

                for (int i = 0; i < CurrentButtonStates.Count; i++)
                {
                    copy.Add(CurrentButtonStates[i]); //move the reference over to the copy
                }
                CurrentButtonStates.Clear();
                DynamicManager.RecordControllerEvent(dynamic.DataId, copy);
            }
        }
Example #4
0
        //have to do polling every frame to capture inputs
        private void Update()
        {
            //right hand a
            if (OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_abtn", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.One, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_abtn", false, CurrentRightButtonStates);
            }

            //right hand b
            if (OVRInput.GetDown(OVRInput.Button.Two, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_bbtn", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.Two, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_bbtn", false, CurrentRightButtonStates);
            }

            //left hand X
            if (OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_xbtn", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.One, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_xbtn", false, CurrentLeftButtonStates);
            }

            //left hand y
            if (OVRInput.GetDown(OVRInput.Button.Two, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_ybtn", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.Two, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_ybtn", false, CurrentLeftButtonStates);
            }

            //left thumbrest
            if (OVRInput.GetDown(OVRInput.Touch.PrimaryThumbRest, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_thumbrest", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Touch.PrimaryThumbRest, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_thumbrest", false, CurrentLeftButtonStates);
            }

            //right thumbrest
            if (OVRInput.GetDown(OVRInput.Touch.PrimaryThumbRest, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_thumbrest", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Touch.PrimaryThumbRest, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_thumbrest", false, CurrentRightButtonStates);
            }

            //start
            if (OVRInput.GetDown(OVRInput.Button.Start, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(RightHand, true, "rift_start", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.Start, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(RightHand, true, "rift_start", false, CurrentLeftButtonStates);
            }

            //trigger buttons
            if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_trigger", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_trigger", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_trigger", false, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_trigger", false, CurrentRightButtonStates);
            }

            //grip
            if (OVRInput.GetDown(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_grip", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetDown(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_grip", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_grip", false, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_grip", false, CurrentRightButtonStates);
            }


            //thumbstick buttons
            if (OVRInput.GetDown(OVRInput.Button.PrimaryThumbstick, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_joystick", true, CurrentLeftButtonStates);
            }
            if (OVRInput.GetDown(OVRInput.Button.PrimaryThumbstick, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_joystick", true, CurrentRightButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryThumbstick, OVRInput.Controller.LTouch))
            {
                OnButtonChanged(LeftHand, false, "rift_joystick", false, CurrentLeftButtonStates);
            }
            if (OVRInput.GetUp(OVRInput.Button.PrimaryThumbstick, OVRInput.Controller.RTouch))
            {
                OnButtonChanged(RightHand, true, "rift_joystick", false, CurrentRightButtonStates);
            }

            if (Time.time > nextUpdateTime)
            {
                RecordAnalogInputs();
                nextUpdateTime = Time.time + UpdateRate;
            }

            if (CurrentRightButtonStates.Count > 0)
            {
                List <ButtonState> copy = new List <ButtonState>(CurrentRightButtonStates.Count);
                for (int i = 0; i < CurrentRightButtonStates.Count; i++)
                {
                    copy.Add(CurrentRightButtonStates[i]);
                }
                CurrentRightButtonStates.Clear();

                DynamicManager.RecordControllerEvent(RightHand.DataId, copy);
            }
            if (CurrentLeftButtonStates.Count > 0)
            {
                List <ButtonState> copy = new List <ButtonState>(CurrentLeftButtonStates.Count);
                for (int i = 0; i < CurrentLeftButtonStates.Count; i++)
                {
                    copy.Add(CurrentLeftButtonStates[i]);
                }
                CurrentLeftButtonStates.Clear();

                DynamicManager.RecordControllerEvent(LeftHand.DataId, copy);
            }
        }