Jump to content

XR Interaction Toolkit

From VR & AR Wiki
XR Interaction Toolkit
Information
Type Interaction framework / software development kit
Industry Virtual reality, augmented reality
Developer Unity Technologies
Written In C#
Operating System Cross-platform (Windows, Android, and other Unity build targets)
License Unity Package Manager package under the Unity Companion License
Supported Devices OpenXR headsets, Meta Quest, Windows Mixed Reality devices, AR devices via AR Foundation
Release Date December 17, 2019 (preview); February 16, 2022 (1.0.0)
Website https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@latest/

Property "Developer" (as page type) with input value "Unity|Unity Technologies" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. Property "Supported Devices" (as page type) with input value "Windows Mixed Reality]] devices" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process.


The XR Interaction Toolkit (often abbreviated XRI) is a high-level, component-based interaction framework for building virtual reality and augmented reality applications in the Unity game engine. It is developed and maintained by Unity Technologies and distributed as a package (`com.unity.xr.interaction.toolkit`) through the Unity Package Manager.[1]

The toolkit lets developers add interactions such as hovering, selecting, grabbing, throwing, and teleporting without writing the underlying input handling from scratch. It exposes these behaviours through reusable components rather than requiring custom scripts, mapping device input from controllers, hands, and screens onto objects in a scene.[1][2] The same interaction components are intended to work across VR and AR, with AR features routed through Unity's separate AR Foundation package.[1][2]

History

Unity released the first preview of the XR Interaction Toolkit on December 17, 2019, as a package for Unity 2019.3. At launch Unity described it as a way to add interactivity to AR and VR experiences across supported platforms without coding the interactions from scratch, with controller-driven hover, select, grab, throw, and rotate behaviours for VR and tap, drag, pinch, and zoom gestures for AR.[2] The package remained in preview through 2020 and 2021.

Unity held the 1.0.0 release in pre-release status across the 2021 development cycle rather than promoting it to a verified release immediately.[3] The first stable 1.0.0 release was published on February 16, 2022, as part of the 2.0.0 changelog history, after a series of 1.0.0 pre-release builds (the changelog lists 1.0.0-pre.8 on October 26, 2021).[4]

Version 2.0.0 followed on February 16, 2022, reworking the interaction model to use an interface-based architecture (`IXRInteractor`, `IXRInteractable`, and related interfaces), adding support for multiple simultaneous selections, and replacing the physics `LayerMask` used for interaction filtering with a dedicated `InteractionLayerMask`.[4] Version 3.0.0 was released on March 18, 2024, introducing a new input reader architecture that abstracts input behind reusable objects, reorganized namespaces, new interactor components including `NearFarInteractor`, `CurveInteractionCaster`, and `SphereInteractionCaster`, and a reworked locomotion system built around a `LocomotionMediator` and an `XRBodyTransformer`.[5] Unity continued to maintain the 2.x line in parallel with the newer 3.x line for projects on older editor versions.[5][6]

Version history

The table below lists selected releases and their dates as recorded in the package changelogs.

Version Release date Notes
0.9 (preview) December 17, 2019 First public preview package for Unity 2019.3[2]
1.0.0-pre.8 October 26, 2021 Late 1.0.0 pre-release build[4]
1.0.0 February 16, 2022 First stable release[4]
2.0.0 February 16, 2022 Interface-based architecture, InteractionLayerMask, multiple selection[4]
2.4.0 June 15, 2023 Maintenance and feature update[5]
2.5.0 August 17, 2023 Maintenance and feature update[5]
3.0.0 March 18, 2024 Input reader architecture, new interactors, reworked locomotion[5]
2.6.0 May 1, 2024 Continued 2.x line for older editors[5]
3.1.0 February 19, 2025 Feature update[6]
3.2.0 June 30, 2025 Feature update[6]
3.3.0 October 15, 2025 Feature update[6]
3.4.0 February 3, 2026 Minimum Unity version raised to 2022.3[6]
3.4.1 April 2, 2026 Latest stable release as of mid-2026[6]

Architecture

The toolkit is built around a set of base Interactor and Interactable components connected by an Interaction Manager. An Interactor is a component that can act on objects, such as a ray cast from a controller, a direct (touch) interactor, or a poke interactor. An Interactable is an object that can be acted upon, such as a grabbable item or a UI element. The Interaction Manager mediates the relationships between them, deciding which interactor is hovering or selecting which interactable at any moment.[1]

Supporting components handle visual and tactile feedback. The toolkit can tint objects on hover, render lines for ray-based interactors, and trigger haptic feedback through controllers. It also includes utilities for canvas-based user interface interaction, so the same controllers that grab objects can also click Unity UI elements.[1]

Scene setup centres on the XR Origin, the component that represents the user's tracking space and camera in the scene. The XR Origin supports both room-scale and stationary configurations, positioning the player camera relative to the tracked play area.[1] In version 3.0 Unity moved input handling to an input reader model, which decouples interactor logic from any single input source. An input reader can draw from the legacy input system, from Input System package actions, from manual values, or from custom scriptable objects, replacing the earlier approach that tied interactors to specific XR controller components.[5]

The package depends on several other Unity packages, including the Input System, the Mathematics package, Unity UI, and XR Core Utilities. AR functionality is optional and requires the separate AR Foundation package; the Animation module is also an optional dependency.[1]

Supported platforms

The XR Interaction Toolkit targets devices through Unity's XR provider plug-ins rather than implementing device support itself. Its documentation lists controller input support for Meta Quest, OpenXR runtimes, and Windows Mixed Reality devices, with AR devices supported through AR Foundation.[1] Because input flows through OpenXR and other XR plug-ins, applications built with the toolkit can run on a range of headsets that expose those runtimes.

The 3.x line requires Unity Editor 2022.3 or later, with version 3.4.0 raising the stated minimum to Unity 2022.3 and the line tracking Unity 6 (the 6000 editor series).[6][1]

Role in VR and AR development

The XR Interaction Toolkit is one of the main first-party options for building interaction logic in Unity VR and AR projects, alongside third-party kits and platform-specific SDKs. Within Unity, common alternatives include the Oculus / Meta integration packages and the community VR Toolkit (VRTK).[7] Because it ships from Unity itself and is engine-agnostic about the underlying headset, it is frequently used as a vendor-neutral interaction layer over OpenXR.[1]

A notable consequence of the toolkit's design is that Microsoft adopted it as the foundation of version 3 of the Mixed Reality Toolkit (MRTK3). In a public plan-of-record issue dated May 26, 2021, the MRTK team wrote that "with the creation of XR Interaction Toolkit (XRI), Unity now provides much of what the MRTK v2.x built into our foundation," and described rebuilding MRTK3 on top of XRI so that MRTK components could be consumed individually. The change introduced breaking changes from MRTK v2.x to v3.[8] MRTK3 targets devices such as the HoloLens 2 and Magic Leap 2, so the XR Interaction Toolkit indirectly underlies a portion of headworn AR development that uses MRTK.[8]

For VR specifically, the toolkit provides built-in locomotion options, including teleportation via teleport interactors and anchors, and supports both room-scale and seated play through the XR Origin.[1][5] For AR, when paired with AR Foundation, it maps touchscreen gestures (tap, drag, pinch, and rotate) onto placed objects and supports placing virtual content against detected real-world surfaces.[2][1] The package also includes an interaction simulator that lets developers test interactions in the editor without connected XR hardware, using mouse and keyboard input to emulate controllers and head movement.[1]

Current status

As of mid-2026 the XR Interaction Toolkit is actively maintained. The latest stable release is version 3.4.1, published on April 2, 2026, with the 3.x line targeting Unity 2022.3 and later and the Unity 6 editor series; a 3.5 pre-release was in progress.[6][1] Unity continued to publish the 2.x line for projects on earlier editor versions.[5]

References