public override void Update() { if (TBSettings.GetControlSettings().supportsHandControllers) { UpdateHandControllers(); } }
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); } } }
public virtual void Initialize() { emptyLookupTable = new TBInput.ButtonLookupTable <T>(); _activeController = GetActiveController(); // Load supported input types. if (TBSettings.GetControlSettings().supportsHandControllers) { LoadHandControllers(); } if (TBSettings.GetControlSettings().supports3DOFControllers) { Load3DOFControllers(); } if (TBSettings.GetControlSettings().supportsClickRemote) { LoadClickRemotes(); } if (TBSettings.GetControlSettings().supportsGamepad) { LoadGamepads(); } TBCore.Events.OnSystemMenu += RefreshInput; }
/// <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); }
protected override void OnDestroy() { base.OnDestroy(); if (TBSettings.GetControlSettings().supportsGamepad) { TBCore.OnUpdate -= TBXInput.instance.Update; TBCore.OnFixedUpdate -= TBXInput.instance.FixedUpdate; } }
public override void Initialize() { base.Initialize(); if (TBSettings.GetControlSettings().supportsGamepad) { TBXInput.instance.Initialize(); TBCore.OnUpdate += TBXInput.instance.Update; TBCore.OnFixedUpdate += TBXInput.instance.FixedUpdate; _useXInputWrapper = true; } }
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; } } } }
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(); } }