# Hand Tracking Controllers

# Scene Architecture

After creating an XR Hand Tracking Manager, two prefabs are automatically set up on the left and right hand fields. These prefabs are for hand visualisation purpose only.
Hand game objects have Hand Rigged Visualizer and Hand Driver components in charge of visualizing the hand mesh and updating hand joint transforms for the Skinned Mesh.

To enable interactions like Distal Interaction and Proximal Interaction, custom XRIT controllers for hands have to be added.

Add the Hand Tracking Controllers GameObject to the scene by right-clicking in the scene's Hierarchy and selecting QCHT > Hand Tracking Controllers.

XR Hand Tracking Controllers

Two instances of hand tracking controllers are automatically added as children of XR Origin (or AR Session).

XR Hand Tracking Controllers

Each controller aggregates the XR Ray Interactor, the XR Poke Interactor and the XR Direct Interactor components with predefined setup and input action bindings. These components are highly configurable.

# XR Hand Controller

The XR Hand Controller component is a custom implementation of XR Action Base Controller (opens new window) from the XR Interaction Toolkit package. The XR Hand Controller is in charge of handling input action coming from the new Unity Input System directly mapped to the underlying hand tracking subsystem. This custom implementation of the XR Action Base Controller defines an additional grab action and the handedness of the controller which is useful to filter interactions.

XRController at runtime