UxrSteamVRControllerInput Class

Base class for all SteamVR input devices. Provides common input handling thanks to using the actions exported by the SteamVRActionsExporter. Child classes will require some overrides and minimal input handling if necessary.

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.SteamVR.UxrSteamVRControllerInput
                    More… Namespace: UltimateXR.Devices.Integrations.SteamVR
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0

Syntax

C#

public abstract class UxrSteamVRControllerInput : UxrControllerInput


The UxrSteamVRControllerInput type exposes the following members.

Constructors

NameDescription
Protected methodUxrSteamVRControllerInput

Properties

NameDescription
Public propertyControllerNames Gets list of controller names that the component can handle.
Public propertyIsHandednessSupported

Gets whether Handedness can be used. In Single devices, it may be used to control which hand is holding the controller. In Dual devices it is used to determine which hands have the Primary (dominant) and Secondary (non-dominant) roles. Devices such as gamepads don’t support handedness and will target the single device no matter which UxrHandSide is used. In this case it is good practice to use Primary to target the device in order to make the code cleaner. (Overrides UxrControllerInput.IsHandednessSupported.)

Public propertySDKDependency SteamVR child classes will require SteamVR SDK to access functionality. (Overrides UxrControllerInput.SDKDependency.)
Public propertyUsesHandSkeletons Gets if the class will use hand skeletons.

Methods

NameDescription
Protected methodAwake Takes care of registering the component in the global list of SteamVR input components. Builds the action list to access input and starts listening for device connections. (Overrides UxrControllerInput.Awake().)
Public methodGetInput1D Gets the state of an analog controller input element. (Overrides UxrControllerInput.GetInput1D(UxrHandSide, UxrInput1D, Boolean).)
Public methodGetInput2D Gets the state of a 2D input element (joystick, touchpad…). (Overrides UxrControllerInput.GetInput2D(UxrHandSide, UxrInput2D, Boolean).)
Public methodIsControllerEnabled Checks whether the given controller is enabled. (Overrides UxrControllerInput.IsControllerEnabled(UxrHandSide).)
Protected methodOnDisable Called when the component is disabled. In the case the component was using skeletal input, the hand will be driven by the Avatar Animator back again. (Overrides UxrComponent<T>.OnDisable().)
Public methodSendHapticFeedback(UxrHandSide, UxrHapticClip) Sends haptic feedback to a controller if the controller supports it. (Overrides UxrControllerInput.SendHapticFeedback(UxrHandSide, UxrHapticClip).)
Public methodSendHapticFeedback(UxrHandSide, Single, Single, Single, UxrHapticMode) Sends haptic feedback to a controller if the controller supports it. (Overrides UxrControllerInput.SendHapticFeedback(UxrHandSide, Single, Single, Single, UxrHapticMode).)
Protected methodStart Initializes SteamVR if necessary and activates the UltimateXR action set. Will initialize skeleton functionality if necessary. (Overrides UxrControllerInput.Start().)
Public methodStopHapticFeedback Stops all current haptics in a given controller. (Overrides UxrControllerInput.StopHapticFeedback(UxrHandSide).)
Protected methodUpdateInput Updates the complete input state using our common SteamVR actions. This allows to use the same interface for all controllers and enables the implementation of new devices with minimal effort. (Overrides UxrControllerInput.UpdateInput().)

Extension Methods

NameDescription
Public Extension MethodCheckSetEnabled Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.)
Public Extension MethodGetOrAddComponent<T> Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.)
Public Extension MethodGetPathUnderScene Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.)
Public Extension MethodGetSceneUid Gets an unique identifier string for the given component. (Defined by ComponentExt.)
Public Extension MethodGetUniqueScenePath 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.)
Public Extension MethodLoopCoroutine Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.)
Public Extension MethodSafeGetComponentInParent<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.)
Public Extension MethodShowInInspector(Boolean)Overloaded.
Controls whether to show the current object in the inspector. (Defined by ObjectExt.)
Public Extension MethodShowInInspector(Boolean, Boolean)Overloaded.
Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.)
Public Extension MethodThrowIfNull Throws an exception if the object is null. (Defined by ObjectExt.)

See Also

Reference

UltimateXR.Devices.Integrations.SteamVR Namespace

Inheritance HierarchySystem.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.SteamVR.UxrSteamVRControllerInput
                    UltimateXR.Devices.Integrations.HTC.UxrHtcViveCosmosInput
                    UltimateXR.Devices.Integrations.HTC.UxrHtcViveInput
                    UltimateXR.Devices.Integrations.Oculus.UxrMetaTouchQuest2InputSteamVR
                    UltimateXR.Devices.Integrations.Oculus.UxrOculusTouchRiftInputSteamVR
                    UltimateXR.Devices.Integrations.Oculus.UxrOculusTouchRiftSQuestInputSteamVR
                    UltimateXR.Devices.Integrations.Valve.UxrValveIndexInput