예제 #1
0
        public bool GetButon(XR_Enum.FeatureUsageButton featureUsage, XR_Enum.Hand hand)
        {
            XR_Controller controller = GetHandController(hand);

            if (controller == null)
            {
                return(false);
            }

            switch (featureUsage)
            {
            case XR_Enum.FeatureUsageButton.PrimaryButton: return(controller.IsPrimaryPressed);

            case XR_Enum.FeatureUsageButton.PrimaryTouch: return(controller.IsPrimaryTouched);

            case XR_Enum.FeatureUsageButton.SecondaryButton: return(controller.IsSecondaryPressed);

            case XR_Enum.FeatureUsageButton.SecondaryTouch: return(controller.IsSecondaryTouched);

            case XR_Enum.FeatureUsageButton.GripButton: return(controller.IsGripPressed);

            case XR_Enum.FeatureUsageButton.TriggerButton: return(controller.IsTriggerPressed);

            case XR_Enum.FeatureUsageButton.MenuButton: return(controller.IsMenuPressed);

            case XR_Enum.FeatureUsageButton.Primary2DAxisClick: return(controller.IsPrimary2DAxisPressed);

            case XR_Enum.FeatureUsageButton.Primary2DAxisTouch: return(controller.IsPrimary2DAxisTouch);

            case XR_Enum.FeatureUsageButton.Thumbrest: return(controller.IsThumbrestPressed);

            default: return(false);
            }
        }
예제 #2
0
        protected override void XR_InputManager_OnAxis1D(float value, XR_Enum.Hand hand, XR_Enum.FeatureUsageAxis usageAxis)
        {
            int usageAxisInt = (int)usageAxis;

            switch (usageAxisInt)
            {
            case (int)XR_Enum.Oculus_Axis.Trigger:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Axis.Grip:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Axis.IndexNearTouch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Axis.ThumbNearTouch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Axis.CombinedTrigger:
            {
            }
            break;
            }
        }
예제 #3
0
        protected override void XR_InputManager_OnButtonPressed(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton)
        {
            int usageButtonInt = (int)usageButton;

            switch (usageButtonInt)
            {
            case (int)XR_Enum.HTC_Vive_Button.Primary:
            {
            }
            break;

            case (int)XR_Enum.HTC_Vive_Button.GripPress:
            {
            }
            break;

            case (int)XR_Enum.HTC_Vive_Button.TriggerPress:
            {
            }
            break;

            case (int)XR_Enum.HTC_Vive_Button.StickOrPadPress:
            {
            }
            break;

            case (int)XR_Enum.HTC_Vive_Button.StickOrPadTouch:
            {
            }
            break;
            }
        }
예제 #4
0
        protected override void XR_InputManager_OnButtonPressed(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton)
        {
            int usageButtonInt = (int)usageButton;

            switch (usageButtonInt)
            {
            case (int)XR_Enum.Daydream_Button.App:
            {
            }
            break;

            case (int)XR_Enum.Daydream_Button.GripPress:
            {
            }
            break;

            case (int)XR_Enum.Daydream_Button.TriggerPress:
            {
            }
            break;

            case (int)XR_Enum.Daydream_Button.TouchpadClick:
            {
            }
            break;

            case (int)XR_Enum.Daydream_Button.TouchpadTouch:
            {
            }
            break;
            }
        }
예제 #5
0
        public float GetAxis(XR_Enum.FeatureUsageAxis featureUsage, XR_Enum.Hand hand)
        {
            XR_Controller controller = GetHandController(hand);

            if (controller == null)
            {
                return(0);
            }

            switch (featureUsage)
            {
            case XR_Enum.FeatureUsageAxis.Trigger: return(controller.TriggerValue);

            case XR_Enum.FeatureUsageAxis.Grip: return(controller.GripValue);

            case XR_Enum.FeatureUsageAxis.IndexTouch: return(controller.IndexTouchValue);

            case XR_Enum.FeatureUsageAxis.ThumbTouch: return(controller.ThumbTouchValue);

            case XR_Enum.FeatureUsageAxis.IndexFinger: return(controller.IndexFingerValue);

            case XR_Enum.FeatureUsageAxis.MiddleFinger: return(controller.MiddleFingerValue);

            case XR_Enum.FeatureUsageAxis.RingFinger: return(controller.RingFingerValue);

            case XR_Enum.FeatureUsageAxis.PinkyFinger: return(controller.PinkyFingerValue);

            case XR_Enum.FeatureUsageAxis.CombinedTrigger: return(controller.CombinedTriggerValue);

            default: return(0);
            }
        }
예제 #6
0
        protected override void XR_InputManager_OnAxis2D(Vector2 value, XR_Enum.Hand hand, XR_Enum.FeatureUsage2DAxis usage2DAxis)
        {
            int usage2DAxisInt = (int)usage2DAxis;

            if (usage2DAxisInt == (int)XR_Enum.GearVR_2DAxis.Joystick)
            {
            }
        }
예제 #7
0
        protected override void XR_InputManager_OnAxis1D(float value, XR_Enum.Hand hand, XR_Enum.FeatureUsageAxis usageAxis)
        {
            int usageAxisInt = (int)usageAxis;

            if (usageAxisInt == (int)XR_Enum.GearVR_Axis.Trigger)
            {
            }
        }
예제 #8
0
        protected override void XR_InputManager_OnButtonPressed(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton)
        {
            int usageButtonInt = (int)usageButton;

            switch (usageButtonInt)
            {
            case (int)XR_Enum.Oculus_Button.XA_Press:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.XA_Touch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.YB_Press:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.YB_Touch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.GripPress:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.IndexTouch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.Start:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.ThumbRestTouch:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.ThumbstickClick:
            {
            }
            break;

            case (int)XR_Enum.Oculus_Button.ThumbstickTouch:
            {
            }
            break;
            }
        }
예제 #9
0
        public static Vector2 GetAxis2D(XR_Enum.FeatureUsage2DAxis featureUsage, XR_Enum.Hand hand)
        {
            switch (SDKSetup.GetSDKType)
            {
            case XR_Enum.SDKType.XR: return(SDKSetup.Instance.XRManager.InputManager.GetAxis2D(featureUsage, hand));

            //case XR_Enum.SDKType.WaveVR:
            default: return(Vector2.zero);
            }
        }
예제 #10
0
        public static bool GetButon(XR_Enum.FeatureUsageButton featureUsage, XR_Enum.Hand hand)
        {
            switch (SDKSetup.GetSDKType)
            {
            case XR_Enum.SDKType.XR: return(SDKSetup.Instance.XRManager.InputManager.GetButon(featureUsage, hand));

            //case XR_Enum.SDKType.WaveVR:
            default: return(false);
            }
        }
예제 #11
0
        public static float GetAxis(XR_Enum.FeatureUsageAxis featureUsage, XR_Enum.Hand hand)
        {
            switch (SDKSetup.GetSDKType)
            {
            case XR_Enum.SDKType.XR: return(SDKSetup.Instance.XRManager.InputManager.GetAxis(featureUsage, hand));

            //case XR_Enum.SDKType.WaveVR:
            default: return(0);
            }
        }
예제 #12
0
        protected override void XR_InputManager_OnButtonPressed(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton)
        {
            int usageButtonInt = (int)usageButton;

            switch (usageButtonInt)
            {
            case (int)XR_Enum.GearVR_Button.TriggerPress:
            {
                if (action)
                {
#if CUSTOM_LEAN_TWEEN
                    initialPos = triggerButton.transform.localPosition;
                    LeanTween.moveLocal(triggerButton, triggerButton.transform.localPosition - new Vector3(0, 0, 0.004f), 0.2f);
#endif
                }
                else
                {
#if CUSTOM_LEAN_TWEEN
                    LeanTween.moveLocal(triggerButton, initialPos, 0.2f);
#endif
                }
            }
            break;

            case (int)XR_Enum.GearVR_Button.TouchpadClick:
            {
                meshRenderer = touchPadButton.GetComponent <MeshRenderer>();
                if (action)
                {
                    meshRenderer.material.color = new Color32(0, 30, 255, 255);
                    Debug.Log("TouchpadClick");
                }
                else
                {
                    meshRenderer.material.color = Color.white;
                }
            }
            break;

            case (int)XR_Enum.GearVR_Button.TouchpadTouch:
            {
                meshRenderer = touchPadButton.GetComponent <MeshRenderer>();
                if (action)
                {
                    meshRenderer.material.color = new Color32(0, 118, 255, 255);
                    Debug.Log("TouchpadTouch");
                }
                else
                {
                    meshRenderer.material.color = Color.white;
                }
            }
            break;
            }
        }
예제 #13
0
        public static Object GetHandController(XR_Enum.Hand hand)
        {
            switch (SDKSetup.GetSDKType)
            {
            case XR_Enum.SDKType.XR:
                return(SDKSetup.Instance.XRManager.InputManager.GetHandController(hand) as Object);

            //case XR_Enum.SDKType.WaveVR:
            default:
                return(null);
            }
        }
예제 #14
0
        protected override void XR_InputManager_OnAxis2D(Vector2 value, XR_Enum.Hand hand, XR_Enum.FeatureUsage2DAxis usage2DAxis)
        {
            int usage2DAxisInt = (int)usage2DAxis;

            switch (usage2DAxisInt)
            {
            case (int)XR_Enum.Oculus_2DAxis.Joystick:
            {
            }
            break;
            }
        }
예제 #15
0
        protected override void XR_InputManager_OnAxis2D(Vector2 value, XR_Enum.Hand hand, XR_Enum.FeatureUsage2DAxis usage2DAxis)
        {
            int usage2DAxisInt = (int)usage2DAxis;

            switch (usage2DAxisInt)
            {
            case (int)XR_Enum.Daydream_2DAxis.Touchpad:
            {
            }
            break;
            }
        }
예제 #16
0
        protected override void XR_InputManager_OnAxis1D(float value, XR_Enum.Hand hand, XR_Enum.FeatureUsageAxis usageAxis)
        {
            int usageAxisInt = (int)usageAxis;

            switch (usageAxisInt)
            {
            case (int)XR_Enum.Daydream_Axis.Trigger:
            {
            }
            break;

            case (int)XR_Enum.Daydream_Axis.Grip:
            {
            }
            break;
            }
        }
예제 #17
0
        public ControllerModel GetControllerMode(XR_Enum.Device device, XR_Enum.Hand hand)
        {
            if (controllerModels == null)
            {
                return(null);
            }

            for (int i = 0; i < controllerModels.Length; i++)
            {
                if (controllerModels[i].device == device && controllerModels[i].hand == hand)
                {
                    return(controllerModels[i]);
                }
            }

            return(null);
        }
예제 #18
0
        public Vector2 GetAxis2D(XR_Enum.FeatureUsage2DAxis featureUsage, XR_Enum.Hand hand)
        {
            XR_Controller controller = GetHandController(hand);

            if (controller == null)
            {
                return(Vector2.zero);
            }

            switch (featureUsage)
            {
            case XR_Enum.FeatureUsage2DAxis.Primary2DAxis: return(controller.GetPrimary2DAxisValue);

            case XR_Enum.FeatureUsage2DAxis.Secondary2DAxis: return(controller.GetSecondary2DAxisValue);

            default: return(Vector2.zero);
            }
        }
예제 #19
0
        protected override void XR_InputManager_OnAxis1D(float value, XR_Enum.Hand hand, XR_Enum.FeatureUsageAxis usageAxis)
        {
            int usageAxisInt = (int)usageAxis;

            switch (usageAxisInt)
            {
            case (int)XR_Enum.OpenVRFull_Axis.Trigger:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.Grip:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.Index:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.Middle:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.Ring:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.Pinky:
            {
            }
            break;

            case (int)XR_Enum.OpenVRFull_Axis.CombinedTrigger:
            {
            }
            break;
            }
        }
예제 #20
0
        public static GameObject GetHand(XR_Enum.Hand hand = XR_Enum.Hand.RIGHT)
        {
            switch (m_instance.currentSDK)
            {
            case XR_Enum.SDKType.XR:
            {
                if (hand == XR_Enum.Hand.RIGHT)
                {
                    return(m_instance.XRManager.RightHand);
                }
                else
                {
                    return(m_instance.XRManager.LeftHand);
                }
            }

            //case XR_Enum.SDKType.WaveVR: return m_instance.m_XRManager.GetDevice;
            default: return(null);
            }
        }
예제 #21
0
        public XR_Controller GetHandController(XR_Enum.Hand hand)
        {
            XR_Controller controller = handControllers.Find(obj => obj.HandType == hand);

            return(controller);
        }
예제 #22
0
 protected abstract void XR_InputManager_OnAxis2D(Vector2 value, XR_Enum.Hand hand, XR_Enum.FeatureUsage2DAxis usage2DAxis);
예제 #23
0
 protected abstract void XR_InputManager_OnAxis1D(float value, XR_Enum.Hand hand, XR_Enum.FeatureUsageAxis usageAxis);
예제 #24
0
 protected abstract void XR_InputManager_OnButtonPressed(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton);
예제 #25
0
 public static void InvokeButtonPress(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton)
 {
     //Debug.Log(hand.ToString() + " InvokeButtonPress " + action + " UsageType: " + usageButton);
     OnButtonPressed?.Invoke(action, hand, usageButton);
 }
예제 #26
0
 public static void InvokeAxis2DValue(Vector2 value, XR_Enum.Hand hand, XR_Enum.FeatureUsage2DAxis usage2DAxis)
 {
     //Debug.Log(hand.ToString() + " Invoke2DAxisValue " + value + " UsageType: " + usage2DAxis);
     On2DAxis?.Invoke(value, hand, usage2DAxis);
 }