Exemple #1
0
 public override TBInput.Mobile3DOFHandedness Get3DOFHandedness()
 {
     if (TBCore.UsingEditorMode() || TBCore.GetActivePlatform() == VRPlatform.OculusPC)
     {
         if (TBSettings.GetControlSettings().handedness3DOF == TBSettings.TBHardwareHandedness.Left)
         {
             return(TBInput.Mobile3DOFHandedness.Left);
         }
         else
         {
             return(TBInput.Mobile3DOFHandedness.Right);
         }
     }
     else
     {
         if (OVRInput.IsControllerConnected(OVRInput.Controller.LTrackedRemote))
         {
             return(TBInput.Mobile3DOFHandedness.Left);
         }
         else if (OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote))
         {
             return(TBInput.Mobile3DOFHandedness.Right);
         }
         else
         {
             return(TBInput.Mobile3DOFHandedness.Center);
         }
     }
 }
Exemple #2
0
        /// <summary>
        /// Needed for generating a controller type compatible with Oculus SDK calls.
        /// </summary>
        /// <param name="controller"></param>
        /// <returns></returns>
        public static OVRInput.Controller GetOculusControllerID(TBInput.Controller controller)
        {
            if (controller == TBInput.Controller.Active)
            {
                controller = TBInput.GetActiveController();
            }

            switch (controller)
            {
            case TBInput.Controller.LHandController:
                return(OVRInput.Controller.LTouch);

            case TBInput.Controller.RHandController:
                return(OVRInput.Controller.RTouch);

            case TBInput.Controller.Mobile3DOFController:
                if (TBCore.UsingEditorMode() || TBCore.GetActivePlatform() == VRPlatform.OculusPC)
                {
                    if (TBSettings.GetControlSettings().handedness3DOF == TBSettings.TBHardwareHandedness.Left)
                    {
                        return(OVRInput.Controller.LTouch);
                    }
                    else
                    {
                        return(OVRInput.Controller.RTouch);
                    }
                }
                else
                {
                    if (OVRInput.IsControllerConnected(OVRInput.Controller.LTrackedRemote))
                    {
                        return(OVRInput.Controller.LTrackedRemote);
                    }
                    else
                    {
                        return(OVRInput.Controller.RTrackedRemote);
                    }
                }

            case TBInput.Controller.ClickRemote:
                if (TBCore.GetActivePlatform() == VRPlatform.OculusMobile)
                {
                    return(OVRInput.Controller.Touchpad);
                }
                else
                {
                    return(OVRInput.Controller.Remote);
                }

            case TBInput.Controller.Gamepad:
                return(OVRInput.Controller.Gamepad);
            }

            TBLogging.LogError("Controller type " + controller + " has no match for Oculus.");
            return(OVRInput.Controller.None);
        }
Exemple #3
0
 protected override void LoadClickRemotes()
 {
     if (TBCore.UsingEditorMode() || (TBCore.GetActivePlatform() == VRPlatform.OculusPC))    // Oculus Remote is only supported click remote when in the editor or on PC builds.
     {
         controller_ClickRemote = TBController_Oculus_Remote.instance;
         #if UNITY_ANDROID
         TBLogging.LogMessage("Using Oculus Remote instead of Gear VR Touchpad when running Gear VR builds in the editor.");
         #endif
     }
     else if (TBCore.GetActivePlatform() == VRPlatform.OculusMobile)                         // Use Gear VR Touchpad when in Android builds
     {
         switch (Settings.TBOculusSettings.GetOculusDeviceFamily())
         {
         case Settings.TBOculusSettings.OculusDeviceFamily.GearVR:
         case Settings.TBOculusSettings.OculusDeviceFamily.Unknown:
             controller_ClickRemote = TBController_Oculus_GearVRTouchpad.instance;
             break;
         }
     }
 }
Exemple #4
0
        protected override void Load3DOFControllers()
        {
            // 3DOF Controller emulation in the editor.
            if (TBCore.UsingEditorMode() && TBSettings.GetControlSettings().emulate3DOFArmModel)
            {
                if (TBSettings.GetControlSettings().handedness3DOF == TBSettings.TBHardwareHandedness.Left)
                {
                    switch (TBCore.GetActiveHeadset())
                    {
                    case VRHeadset.OculusRift:
                        controller_3DOF = TBController_SteamVR_OculusTouchLeft.instance;
                        break;

                    case VRHeadset.WindowsMR:
                        controller_3DOF = TBController_SteamVR_WindowsMixedRealityLeft.instance;
                        break;

                    default:
                        controller_3DOF = TBController_SteamVR_ViveControllerLeft.instance;
                        break;
                    }
                }
                else
                {
                    switch (TBCore.GetActiveHeadset())
                    {
                    case VRHeadset.OculusRift:
                        controller_3DOF = TBController_SteamVR_OculusTouchRight.instance;
                        break;

                    case VRHeadset.WindowsMR:
                        controller_3DOF = TBController_SteamVR_WindowsMixedRealityRight.instance;
                        break;

                    default:
                        controller_3DOF = TBController_SteamVR_ViveControllerRight.instance;
                        break;
                    }
                }
            }
        }
Exemple #5
0
        protected override void Load3DOFControllers()
        {
            if (!TBCore.UsingEditorMode() && (TBCore.GetActivePlatform() == VRPlatform.OculusMobile))    // Prevents 3DOF controller from initializing when on PC unless we're in the editor.
            {
                controller_3DOF = TBController_Oculus_GearVRController.instance;
            }
            else if (TBCore.UsingEditorMode() || (TBCore.GetActivePlatform() == VRPlatform.OculusPC))
            {
                if (TBSettings.GetControlSettings().handedness3DOF == TBSettings.TBHardwareHandedness.Left)
                {
                    controller_3DOF = TBController_Oculus_TouchLeft.instance;
                }
                else
                {
                    controller_3DOF = TBController_Oculus_TouchRight.instance;
                }

                TBLogging.LogMessage("Emulating 3DOF Controller with Oculus Touch controller with " + TBSettings.GetControlSettings().handedness3DOF + " handedness.");
            }
            else
            {
                base.Load3DOFControllers();
            }
        }