Example #1
0
        protected virtual PointerEventData.FramePressState GetGazeButtonState()
        {
            bool flag  = Input.GetKeyDown(this.gazeClickKey) || OVRInput.GetDown(this.joyPadClickButton, OVRInput.Controller.Active);
            bool flag2 = Input.GetKeyUp(this.gazeClickKey) || OVRInput.GetUp(this.joyPadClickButton, OVRInput.Controller.Active);

            if (flag && flag2)
            {
                return(PointerEventData.FramePressState.PressedAndReleased);
            }
            if (flag)
            {
                return(PointerEventData.FramePressState.Pressed);
            }
            if (flag2)
            {
                return(PointerEventData.FramePressState.Released);
            }
            return(PointerEventData.FramePressState.NotChanged);
        }
Example #2
0
        /// <summary>
        /// Modfied version of the base class that takes into account when which object got hit
        /// </summary>
        /// <returns></returns>
        protected PointerEventData.FramePressState GetGazeButtonState(GameObject rayCastHit)
        {
            var pressed  = Input.GetKeyDown(gazeClickKey) || OVRInput.GetDown(joyPadClickButton);
            var released = Input.GetKeyUp(gazeClickKey) || OVRInput.GetUp(joyPadClickButton);

            bool       shouldImmediatelyRelease;
            GameObject newGazedObject = GetCurrentlyGazedGameObject(rayCastHit, out shouldImmediatelyRelease);

            if (currentlyGazedObject != newGazedObject)
            {
                released                  |= true;
                currentlyGazedObject       = newGazedObject;
                lastTimeGazedObjectChanged = Time.time;
            }

            float currentDwellTime = Time.time - lastTimeGazedObjectChanged;

            if (currentlyGazedObject && currentDwellTime >= activationDwellTime)
            {
                pressed |= true;
                if (shouldImmediatelyRelease)
                {
                    //reset the time so this doesn't get activated again
                    lastTimeGazedObjectChanged = float.MaxValue;
                    released |= true; //simulate click
                }
            }

            if (pressed && released)
            {
                return(PointerEventData.FramePressState.PressedAndReleased);
            }
            if (pressed)
            {
                return(PointerEventData.FramePressState.Pressed);
            }
            if (released)
            {
                return(PointerEventData.FramePressState.Released);
            }
            return(PointerEventData.FramePressState.NotChanged);
        }
Example #3
0
        /// <summary>
        /// Get state of button corresponding to gaze pointer
        /// </summary>
        /// <returns></returns>
        virtual protected PointerEventData.FramePressState GetGazeButtonState()
        {
            var pressed = Input.GetKeyDown(gazeClickKey) || OVRInput.GetDown(joyPadClickButton):
            var released = Input.GetKeyUp(gazeClickKey) || OVRInput.GetUp(joyPadClickButton):

#if UNITY_ANDROID && !UNITY_EDITOR
            // On Gear VR the mouse button events correspond to touch pad events. We only use these as gaze pointer clicks 
            // on Gear VR because on PC the mouse clicks are used for actual mouse pointer interactions.
            pressed |= Input.GetMouseButtonDown(0):
            released |= Input.GetMouseButtonUp(0):
#endif

            if (pressed && released)
                return PointerEventData.FramePressState.PressedAndReleased:
            if (pressed)
                return PointerEventData.FramePressState.Pressed:
            if (released)
                return PointerEventData.FramePressState.Released:
            return PointerEventData.FramePressState.NotChanged:
        }
        /// <summary>
        /// Get state of button corresponding to gaze pointer
        /// </summary>
        /// <returns></returns>
        virtual protected PointerEventData.FramePressState GetGazeButtonState()
        {
            var pressed  = Input.GetKeyDown(gazeClickKey) || OVRInput.GetDown(joyPadClickButton);
            var released = Input.GetKeyUp(gazeClickKey) || OVRInput.GetUp(joyPadClickButton);

#if UNITY_ANDROID && !UNITY_EDITOR
            pressed  |= Input.GetMouseButtonDown(0);
            released |= Input.GetMouseButtonUp(0);
#endif
            if (joyPadClickButton == OVRInput.Button.SecondaryIndexTrigger)
            {
                pressed  = false;
                released = false;
                if (OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger) <= 0.5f && prevTrigger > 0.5f)
                {
                    released = true;
                }

                if (OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger) > 0.5f)
                {
                    pressed = true;
                }
                prevTrigger = OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger);
            }

            if (pressed && released)
            {
                return(PointerEventData.FramePressState.PressedAndReleased);
            }
            if (pressed)
            {
                return(PointerEventData.FramePressState.Pressed);
            }
            if (released)
            {
                return(PointerEventData.FramePressState.Released);
            }
            return(PointerEventData.FramePressState.NotChanged);
        }
Example #5
0
        /// <summary>
        /// Get state of button corresponding to gaze pointer
        /// </summary>
        /// <returns></returns>
        protected PointerEventData.FramePressState GetGazeButtonState()
        {
            var pressed  = false;
            var released = false;

            if (activeController != OVRInput.Controller.None)
            {
                pressed  = OVRInput.GetDown(joyPadClickButton, activeController);
                released = OVRInput.GetUp(joyPadClickButton, activeController);
            }
            else
            {
                pressed  = OVRInput.GetDown(joyPadClickButton);
                released = OVRInput.GetUp(joyPadClickButton);
            }

#if UNITY_ANDROID && !UNITY_EDITOR
            pressed  |= Input.GetMouseButtonDown(0);
            released |= Input.GetMouseButtonUp(0);
#endif

            if (pressed && released)
            {
                //Debug.Log ("pressed & released");
                return(PointerEventData.FramePressState.PressedAndReleased);
            }
            if (pressed)
            {
                //Debug.Log ("pressed");
                return(PointerEventData.FramePressState.Pressed);
            }
            if (released)
            {
                //Debug.Log ("released");
                return(PointerEventData.FramePressState.Released);
            }

            return(PointerEventData.FramePressState.NotChanged);
        }
Example #6
0
        /// <summary>
        /// Get state of button corresponding to gaze pointer
        /// </summary>
        /// <returns></returns>
        protected PointerEventData.FramePressState GetGazeButtonState()
        {
            var pressed  = Input.GetKeyDown(gazeClickKey) || OVRInput.GetDown(joyPadClickButton);
            var released = Input.GetKeyUp(gazeClickKey) || OVRInput.GetUp(joyPadClickButton);

#if UNITY_ANDROID && !UNITY_EDITOR
            pressed  |= Input.GetMouseButtonDown(0);
            released |= Input.GetMouseButtonUp(0);
#endif

            if (pressed && released)
            {
                return(PointerEventData.FramePressState.PressedAndReleased);
            }
            if (pressed)
            {
                return(PointerEventData.FramePressState.Pressed);
            }
            if (released)
            {
                return(PointerEventData.FramePressState.Released);
            }
            return(PointerEventData.FramePressState.NotChanged);
        }