# Distal interaction

To interact with distant (distal) objects, the user can use the XR Ray Interactor component from XRIT.

To use the distal interaction feature, the users must bring their hand into the headset's field of view and will see a ray that allows them to aim at the object they want to interact with. The reticle at the end of the ray allows the users to target and refine the precision of the interaction. The pinch gesture activates the selection to manipulate the targeted object.

# Description

First, ensure the Hand Tracking inital setup is complete for the scene.

# XRControllerPointer

The XR Controller Pointer Left and XR Controller Pointer Right prefabs, located in the Packages > QCHT Unity Interactions > Prefabs > Interactions > Distal folder, should be childed to the Camera Offset GameObject in the XR Origin GameObject.

Adjust the raycast parameters by changing the XR Ray Interactor component for each hand. Refer to Unity's documentation to learn more about XR Interactor (opens new window).

By default, the XRController (opens new window) script that controls each pointer has the positions set by the pointerPosition and the rotations set by the pointerRotation. These are calculated by the XRHandTrackingManager. The Select and UI Press actions are set by default with triggerPressed (which is the Pinch gesture).

As shown in this exemple, second and third actions can be mapped to another device as a fallback to the hand tracking. Thanks to the new input system compatibility, it's possible to easily support different inputs modalities with the exact same code.

TIP

It is highly recommended to use the Core Assets to get a full predefined XR Rig setup with a default input action mapping.

# Snap Volume

Use the XR Interactable Snap Volume (opens new window) component from XRIT to increase raycast accuracy and efficiency.