public virtual HandTrackingOffsets GetControllerTrackingOffsets(TBInput.Controller controller) { if (controller == TBInput.Controller.Active) { controller = GetActiveController(); } switch (controller) { case TBInput.Controller.LHandController: return(controller_LHand.GetTrackingOffsets()); case TBInput.Controller.RHandController: return(controller_RHand.GetTrackingOffsets()); case TBInput.Controller.Mobile3DOFController: return(controller_3DOF.GetTrackingOffsets()); case TBInput.Controller.ClickRemote: return(controller_ClickRemote.GetTrackingOffsets()); case TBInput.Controller.Gamepad: return(controller_Gamepad.GetTrackingOffsets()); } return(new HandTrackingOffsets()); }
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; }
public override bool ResolveTouchUp(GvrControllerButton button, TBInput.Controller controller) { if (button == GvrControllerButton.TouchPadButton) { return(GetGoogleControllerID(controller).GetButtonUp(GvrControllerButton.TouchPadTouch)); } return(false); }
public override bool SetRumble(TBInput.Controller controller, float strength) { #if UNITY_2018_3_OR_NEWER return(false); #else return(false); #endif }
public override bool SetRumble(TBInput.Controller controller, float strength) { #if UNITY_2018_3_OR_NEWER return(GetUnityXRInputDevice(controller).SendHapticImpulse(0, strength, Time.deltaTime)); #else return(false); #endif }
public virtual bool ControllerHasRumbleSupport(TBInput.Controller controller) { if (GetControllerForType(controller) != null) { return(GetControllerForType(controller).HasRumbleSupport()); } return(false); }
public override bool GetTouchDown(TBInput.Button button, TBInput.Controller controller) { if (ShouldRouteThroughXInput(controller)) { return(TBXInput.instance.GetTouchDown(button, controller)); } return(base.GetTouchDown(button, controller)); }
public override string GetControllerName(TBInput.Controller controller) { if (ShouldRouteThroughXInput(controller)) { return(TBXInput.instance.GetControllerName(controller)); } return(base.GetControllerName(controller)); }
public override bool SupportsAxis2D(TBInput.Button button, TBInput.Controller controller) { if (ShouldRouteThroughXInput(controller)) { return(TBXInput.instance.SupportsAxis2D(button, controller)); } return(base.SupportsAxis2D(button, controller)); }
public override bool ControllerHasRumbleSupport(TBInput.Controller controller) { if (ShouldRouteThroughXInput(controller)) { return(TBXInput.instance.ControllerHasRumbleSupport(controller)); } return(base.ControllerHasRumbleSupport(controller)); }
public override Vector2 GetAxis2D(TBInput.Button button, TBInput.Controller controller) { if (ShouldRouteThroughXInput(controller)) { return(TBXInput.instance.GetAxis2D(button, controller)); } return(base.GetAxis2D(button, controller)); }
protected virtual T[] GetButtonArray(TBInput.Button button, ref TBInput.Controller controller) { if (controller == TBInput.Controller.Active) { controller = TBInput.GetActiveController(); } return(TBInput.GetRawButtons <T>(button, GetButtonLookupTableForController(controller))); }
public override bool ResolveTouch(OVRInput.RawButton button, TBInput.Controller controller) { OVRInput.Controller ctrl = GetOculusControllerID(controller); if (OVRInput.Get(GetTouchEnum(button), ctrl)) { return(true); } return(false); }
public override bool ResolveButtonUp(OVRInput.RawButton button, TBInput.Controller controller) { OVRInput.Controller ctrl = GetOculusControllerID(controller); if (OVRInput.GetUp(button, ctrl)) { return(true); } return(false); }
/// <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); }
public void SetButton(TBInput.Button button, TBInput.Controller controller) { _button = button; _controller = controller; if (!TBInput.SupportsAxis1D(button, controller)) { transform.parent.gameObject.SetActive(false); } }
public override Vector2 ResolveAxis2D(EVRButtonId button, TBInput.Controller controller) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { return(SteamVR_Controller.Input((int)id).GetAxis(button)); } return(Vector2.zero); }
public override bool SetRumble(TBInput.Controller controller, float strength) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { SteamVR_Controller.Input((int)id).TriggerHapticPulse((ushort)(3999 * strength), EVRButtonId.k_EButton_SteamVR_Touchpad); } return(true); }
public void SetButton(TBInput.Button button, TBInput.Controller controller) { _button = button; _controller = controller; if (!TBInput.SupportsButton(button, controller)) { gameObject.SetActive(false); } }
protected virtual void SetActiveController(TBInput.Controller controller) { if (_activeController == controller) { return; } _activeController = controller; // TODO: fire an event when controller is changed }
public override Vector3 GetAngularVelocity(TBInput.Controller controller) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { return(SteamVR_Controller.Input((int)id).angularVelocity); } return(Vector3.zero); }
public override Vector3 GetRawPosition(TBInput.Controller controller) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { return(SteamVR_Controller.Input((int)id).transform.pos); } return(Vector3.zero); }
public override Quaternion GetRawRotation(TBInput.Controller controller) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { return(SteamVR_Controller.Input((int)id).transform.rot); } return(Quaternion.identity); }
private void AnimateInput(ref float time, TBInput.Controller controller) { if (TBInput.GetButton(TBInput.Button.Any, controller)) { AddTime(ref time); } else { ResolveTime(ref time); } }
public override bool ResolveButton(TBXInputButton button, TBInput.Controller controller) { if (GetState(button, _reading)) { return(true); } else { return(false); } }
protected TBInput.ButtonLookupTable <T> GetButtonLookupTableForController(TBInput.Controller controller) { if (GetControllerForType(controller) != null) { return(GetControllerForType(controller).GetLookupTable()); } else { return(emptyLookupTable); } }
public override Vector2 ResolveAxis2D(GvrControllerButton button, TBInput.Controller controller) { if (button == GvrControllerButton.TouchPadButton) { if (GetGoogleControllerID(controller).GetButton(GvrControllerButton.TouchPadTouch)) { return(GetGoogleControllerID(controller).TouchPos); } } return(Vector2.zero); }
public override bool ResolveButton(TBXInputButton button, TBInput.Controller controller) { if (GetState(button, _state) == ButtonState.Pressed) { return(true); } else { return(false); } }
public virtual bool SupportsInputType(TBInput.Button button, TBInput.Controller controller) { T[] buttons = GetButtonArray(button, ref controller); if (buttons == null) { return(false); } else { return(true); } }
public override bool ResolveTouch(EVRButtonId button, TBInput.Controller controller) { uint id = GetSteamVRControllerID(controller); if (OpenVR.System.IsTrackedDeviceConnected(id)) { if (SteamVR_Controller.Input((int)id).GetTouch(button)) { return(true); } } return(false); }