# XRInputSubsystem

> XRInputSubsystem Instance is used to enable and disable the inputs coming from a specific plugin.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.XR](/engine/6000.0/script-reference/unityengine/xr.md)
* **Assembly:** UnityEngine.XRModule
* **Inherits from:** [IntegratedSubsystem\<XRInputSubsystemDescriptor>](/engine/6000.0/script-reference/unityengine/integratedsubsystem.md)
* **Implements:** [ISubsystem](/engine/6000.0/script-reference/unityengine/isubsystem.md)

```csharp
public class XRInputSubsystem : IntegratedSubsystem<XRInputSubsystemDescriptor>, ISubsystem
```

## Remarks

Starting up an XRInputSubsystem Instance will cause that plugin to start feeding input device data to the following [InputTracking](/engine/6000.0/script-reference/unityengine/xr/inputtracking.md) systems: [InputTracking.GetLocalPosition](/engine/6000.0/script-reference/unityengine/xr/inputtracking/getlocalposition.md) and [InputTracking.GetLocalRotation](/engine/6000.0/script-reference/unityengine/xr/inputtracking/getlocalrotation.md). Calling the Stop or Shutdown functions will disable polling any input device data for that plugin.

## Methods

| Method                                                                                                                                | Description                                                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetSupportedTrackingOriginModes](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/getsupportedtrackingoriginmodes.md) | Gets all [TrackingOriginModeFlags](/engine/6000.0/script-reference/unityengine/xr/trackingoriginmodeflags.md) that this subsystem supports.                                                                         |
| [GetTrackingOriginMode](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/gettrackingoriginmode.md)                     | Gets the Tracking Origin Mode.                                                                                                                                                                                      |
| [TryGetBoundaryPoints](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/trygetboundarypoints.md)                       | Gets the list of 3D position values that represents the SDK-set boundary.                                                                                                                                           |
| [TryGetInputDevices](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/trygetinputdevices.md)                           | Gets a list of all connected [InputDevice](/engine/6000.0/script-reference/unityengine/xr/inputdevice.md)s reported by this [XRInputSubsystem](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem.md). |
| [TryRecenter](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/tryrecenter.md)                                         | Centers the tracking features on all [InputDevice](/engine/6000.0/script-reference/unityengine/xr/inputdevice.md)s to the current position and orientation of the head-mounted device.                              |
| [TrySetTrackingOriginMode](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/trysettrackingoriginmode.md)               | Attempts to set the [TrackingOriginModeFlags](/engine/6000.0/script-reference/unityengine/xr/trackingoriginmodeflags.md) of the subsystem.                                                                          |

## Events

| Member                                                                                                            | Description                                                                                                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [boundaryChanged](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/boundarychanged.md)             | An event that takes the delegate instance that the [XRInputSubsystem](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem.md) calls when it changes its tracking boundary.            |
| [trackingOriginUpdated](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem/trackingoriginupdated.md) | An event that takes the delegate instance that the [XRInputSubsystem](/engine/6000.0/script-reference/unityengine/xr/xrinputsubsystem.md) calls when it changes the origin it reports devices at. |

## Inheritance

**Inherited Members:**

* [IntegratedSubsystem.Start()](/engine/6000.0/script-reference/unityengine/integratedsubsystem/start.md)
* [IntegratedSubsystem.Stop()](/engine/6000.0/script-reference/unityengine/integratedsubsystem/stop.md)
* [IntegratedSubsystem.Destroy()](/engine/6000.0/script-reference/unityengine/integratedsubsystem/destroy.md)
* [IntegratedSubsystem.running](/engine/6000.0/script-reference/unityengine/integratedsubsystem/running.md)
