UxrUnityXRControllerInput Class
Generic base class for left-right input devices that can be handled through the new generic Unity XR input interface. Before, we had to manually support each SDK individually.
Inheritance Hierarchy
System.Object
Object
Component
Behaviour
MonoBehaviour
UltimateXR.Core.Components.UxrComponent
UltimateXR.Core.Components.UxrComponent(UxrControllerInput)
UltimateXR.Core.Components.Composite.UxrAvatarComponent(UxrControllerInput)
UltimateXR.Devices.UxrControllerInput
UltimateXR.Devices.Integrations.UxrUnityXRControllerInput
More…
Namespace: UltimateXR.Devices.Integrations
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0
Syntax
C#
public abstract class UxrUnityXRControllerInput : UxrControllerInput
The UxrUnityXRControllerInput type exposes the following members.
Constructors
Name | Description | |
---|---|---|
UxrUnityXRControllerInput |
Properties
Name | Description | |
---|---|---|
ControllerNames | Gets list of controller names that the component can handle | |
ForceUseAlways | We use this when we are implementing new controllers that we don’t know the name of, in order to show the controller names in the UxrDebugControllerPanel. Returning true will register the controllers in InputDevices_DeviceConnected(InputDevice) no matter which input device gets connected. Then using the UxrDebugControllerPanel we can see which devices got connected. This is mostly useful for untethered devices that cannot be tested directly in Unity. | |
LeftControllerName | Gets the left controller name, or empty if not connected / doesn’t exist. In Single configurations where IsHandednessSupported is not available, both sides will return the same name. (Overrides UxrControllerInput.LeftControllerName.) | |
RightControllerName | Gets the right controller name, or empty if not connected / doesn’t exist. In Single configurations where IsHandednessSupported is not available, both sides will return the same name. (Overrides UxrControllerInput.RightControllerName.) |
Methods
Name | Description | |
---|---|---|
Awake | Initializes variables and subscribes to events. If the controllers were already initialized, enables the component. Otherwise it begins disabled until devices are connected. (Overrides UxrControllerInput.Awake().) | |
CreateHapticBufferFromAudioClip | Using an audio file, creates a haptic samples buffer that can be sent for feedback. This code is based on the Oculus SDK (OVRHaptics.cs). | |
GetControllerCapabilities | Gets the capabilities of the XR controller. (Overrides UxrControllerInput.GetControllerCapabilities(UxrHandSide).) | |
GetInput1D | Gets the state of an analog controller input element. (Overrides UxrControllerInput.GetInput1D(UxrHandSide, UxrInput1D, Boolean).) | |
GetInput2D | Gets the state of a 2D input element (joystick, touchpad…). (Overrides UxrControllerInput.GetInput2D(UxrHandSide, UxrInput2D, Boolean).) | |
GetInputDevice | Gets the input device interface in Unity’s input system for a given hand. Usually if it is a left+right setup it will give a list with a single entry but the system is very generic so it is prepared to handle different setups. Normally we get the list and just use the first entry if available. | |
IsControllerEnabled | Checks whether the given controller is enabled. (Overrides UxrControllerInput.IsControllerEnabled(UxrHandSide).) | |
OnDestroy | Unsubscribes from device events. (Overrides UxrControllerInput.OnDestroy().) | |
SendHapticFeedback(UxrHandSide, UxrHapticClip) | Sends haptic feedback to a controller if the controller supports it. (Overrides UxrControllerInput.SendHapticFeedback(UxrHandSide, UxrHapticClip).) | |
SendHapticFeedback(UxrHandSide, Single, Single, Single, UxrHapticMode) | Sends haptic feedback to a controller if the controller supports it. (Overrides UxrControllerInput.SendHapticFeedback(UxrHandSide, Single, Single, Single, UxrHapticMode).) | |
StopHapticFeedback | Stops all current haptics in a given controller. (Overrides UxrControllerInput.StopHapticFeedback(UxrHandSide).) | |
UpdateInput | Updates the input state. This should not be called by the user since it is called by the framework already. (Overrides UxrControllerInput.UpdateInput().) |
Extension Methods
Name | Description | |
---|---|---|
CheckSetEnabled | Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.) | |
GetOrAddComponent<T> | Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.) | |
GetPathUnderScene | Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.) | |
GetSceneUid | Gets an unique identifier string for the given component. (Defined by ComponentExt.) | |
GetUniqueScenePath | Gets an unique path in the scene for the given component. It will include scene name, sibling and component indices to make it unique. (Defined by ComponentExt.) | |
LoopCoroutine | Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.) | |
SafeGetComponentInParent<T> | Gets the Component of a given type in the GameObject or any of its parents. It also works on prefabs, where regular GetComponentInParent(Type, Boolean) will not work: https://issuetracker.unity3d.com/issues/getcomponentinparent-is-returning-null-when-the-gameobject-is-a-prefab (Defined by ComponentExt.) | |
ShowInInspector(Boolean) | Overloaded. Controls whether to show the current object in the inspector. (Defined by ObjectExt.) | |
ShowInInspector(Boolean, Boolean) | Overloaded. Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.) | |
ThrowIfNull | Throws an exception if the object is null. (Defined by ObjectExt.) |
See Also
Reference
UltimateXR.Devices.Integrations Namespace