Releases: needle-mirror/com.unity.xr.interaction.toolkit
Releases · needle-mirror/com.unity.xr.interaction.toolkit
3.5.0-pre.1
[3.5.0-pre.1] - 2026-03-16
Added
- Added an example prefab for hand-based teleportation to the Hands Interaction Demo.
- Added
prioritizeDistanceSortingto theUIInputModuleto ensure closer objects are prioritized for UI interactions. - Added new methods and events to
XRUIInputModulerelated to registration changes, including getting a list of registered UI interactors and for adding to a waitlist that an input module can consume to register UI interactors automatically or through scripting. - Added a new
IUIInteractorRegistrationHandlerinterface that is aIUIInteractorbut allows for the UI interactor to be notified of registration changes to an XR UI Input Module component. The built-in interactor components that support UI interaction now implement this new interface. - Added motion continuity validation to
XRPokeInteractorthat detects frame gaps, teleport-like discontinuities, and first-frame conditions to ensure swept sphere queries only trace physically meaningful inter-frame paths. - Added a Snap Volume Interaction collision setting to
XRPokeInteractor. - Added support for sending
UIHoverEnterEventandUIHoverExitEventevents from the world-space support for UI Toolkit. Additional properties were added to theUIHoverEventArgspassed to each to allow users to distinguish between UI Toolkit or uGUI (Unity UI) and access values specific to each. - Added ability to use input from UI Scroll Input on both XR Ray Interactor and Near-Far Interactor to allow scrolling on UI Toolkit scroll views.
- Added point-and-click functionality to the simulated controllers in
XRInteractionSimulator. This allows you to interact with objects in controller mode via mouse point and click. - Added hand interactivity to the
XRInteractionSimulator. Originally, hands in the simulator were only visual. Now hand interaction is simulated and passed to a hand subsystem allowing users to interact with their scene using simulated hands. - Added a new XR Mouse Interaction Demo sample with support for the XR_ANDROID_mouse_interaction OpenXR extension.
Changed
- Changed the Hands Interaction Demo base environment to include teleport anchors to utilize hand-based teleportation.
- Changed package sample textures and sprites to conform to power of two standards.
- Changed max Cone Cast Angle from 180 degrees to 20 degrees in the XR Ray Interactor Inspector window.
- Changed Cone Cast Angle to a slider with range 0 to 20 degrees in the Curve Interaction Caster Inspector window.
- Changed the
XRUIInputModuleon theEventSystemthat is automatically created at runtime by a UI interactor to be marked asDontDestroyOnLoad. The default input module will only be automatically created once all scenes finish loading. - Changed the XR UI Input Module component so it unregisters all UI interactors when that component is destroyed. The components that were registered with the destroyed input module will automatically be re-registered with another input module, either an active and enabled one in the scene or the next one to be enabled. This updates the behavior of the XR UI Input Module and UI interactors to match the functionality of interactors with the XR Interaction Manager.
XRInteractionSimulatornow keeps track of both left and right controller inputs/hand expressions.XRUIInputModulenow gates touchscreen and mouse related input actions withenableTouchInputorenableMouseInput.
Deprecated
- Deprecated
XRDeviceSimulatoras it will be replaced with theXRInteractionSimulator. - Deprecated
SimulatedHandExpressionManageras it will be replaced with theSimulatedHandPlaybackManager.
Fixed
- Fixed
LazyFollowsnap on enable not snapping rotation correctly. - Fixed an issue where the
CurveVisualControllerwould not display hover visuals when hovering anXRInteractableSnapVolume. - Fixed the icon used for the additional Input Reader properties that may appear based on the input source selected. It is now an information bubble icon, whereas previously a help icon was used. This lead to confusion with the standard clickable help icons used for linking to manual pages.
- Fixed Editor Assembly Definition to include
Unity.InputSystem.Editorin the references to fix script compilation on some versions of Input System (com.unity.inputsystem). - Fixed
XRPokeInteractorproducing ghost hover events after interactor re-enable or XR rig teleport due to stale previous-frame position being used as the sweep origin without validity checks. - Fixed
XRPokeInteractorfailing to detect thin colliders (1–5mm) during normal-speed poke interactions due to sweep threshold being too high for the swept sphere query to activate. AdjustedXRPokeInteractorsweep threshold from 31.6mm to 5mm, allowing moderate-speed pokes to use swept sphere queries for more reliable detection of thin UI surfaces. - Fixed obsolete warnings when accessing
activeInstanceIDin unity 6000.3. - Fixed
MaterialPipelineHandlersample script causing error "Calls to AssetDatabase.SaveAssets are restricted during asset importing." upon initial import.
3.3.1
[3.3.1] - 2025-12-16
Fixed
- Fixed an issue with the
JumpProvidercontinually being stuck in theLocomotionState.Movingstate and never entering theLocomotionState.Endedstate. (Backport from 3.4.0-pre.1) - Fixed an issue in which the
HandMenuappears unstable or flickers between showing and hiding when it is displayed while the pose of the anchor transform remains near the angle/range in which it was initially triggered to be shown. In order to solve the issue, the controller displaying the menu now has a separate wider range for hiding the menu than the allowable range that triggers the initial display of the menu. (Backport from 3.4.0-pre.1)
3.0.10
[3.0.10] - 2025-12-09
Added
- Added configurable functionality to
ARContactSpawnTriggerin the AR Starter Assets sample to block spawning of objects on AR Planes when the active interactor in the associatedXRInteractionGroupis either hovering or selecting an interactable object. (Backport from 3.2)
Fixed
- Fixed an issue with
TryGetCurveEndPointin theNearFarInteractor, where Snap Volumes are not checked against the list of valid targets, which may be different when using Target Filters. (Backport from 3.2.1) - Fixed an issue with
NearFarInteractorwhere it would ignore thecanProcessproperty on anIXRTargetFilter, allowing it to always process the filter. (Backport from 3.2.1) - Fixed an issue in which the
HandMenuappears unstable or flickers between showing and hiding when it is displayed while the pose of the anchor transform remains near the angle/range in which it was initially triggered to be shown. In order to solve the issue, the controller displaying the menu now has a separate wider range for hiding the menu than the allowable range that triggers the initial display of the menu. (Backport from 3.4.0)
3.2.2
[3.2.2] - 2025-11-05
Fixed
- Fixed an issue where pinching with the Hand Interaction Profile caused the Interactables to stick to the thumb longer than desired, moving the object after a pinch was released. The
ReleaseThresholdButtonReadersample component was updated with new default values to ensure tighter press and release when pinching. (XRIT-334) (Backport from 3.3.0) - Fixed hand prefabs in the
Hands Interaction Demosample that were based on the hand models from the XR HandsHandVisualizersample. The new prefabs are built as a prefab variant, allowing smoother upgrade when the underlying models are updated. (Backport from 3.4.0-pre.1) - Fixed an issue with the
JumpProvidercontinually being stuck in theLocomotionState.Movingstate and never entering theLocomotionState.Endedstate. (Backport from 3.4.0-pre.1)
3.1.3
[3.1.3] - 2025-11-03
Fixed
- Fixed a version handling routine in the Project Validation Utility for sample version caching. Other Unity sample packages sometimes use non-version strings, which was throwing an exception. (XRIT-263) (Backport from 3.2.0-pre.1)
- Fixed
NullReferenceExceptionin internal analytics code when getting the package version after opening the Profiler (Standalone Process) window. (XRIT-267) (Backport from 3.2.0-pre.2)
3.0.9
[3.0.9] - 2025-11-03
Fixed
- Fixed a version handling routine in the Project Validation Utility for sample version caching. Other Unity sample packages sometimes use non-version strings, which was throwing an exception. (XRIT-263) (Backport from 3.2.0-pre.1)
- Fixed "Screen position out of view frustum" error spam when using the XR UI Input Module component together with UI Toolkit with some Panel Input Configuration settings. (XRIT-280) (Backport from 3.2.0)
3.4.0-pre.2
[3.4.0-pre.2] - 2025-10-22
Fixed
- Fixed an issue causing UI unit tests to fail on some macOS devices.
3.4.0-pre.1
[3.4.0-pre.1] - 2025-10-16
Added
- Added a 10-key number pad prefab to the Spatial Keyboard sample.
- Added column for the XR Interaction Group the interactor is a member of to the XR Interaction Debugger window.
- Added Hierarchy Path column to the XR Interaction Debugger window to show the full scene hierarchy path of the object. This column is hidden by default and can be shown by right-clicking the column header list and selecting it from the context menu.
- Added additional tab to the XR Interaction Debugger window to show registered XR Interactable Snap Volumes.
- Added
managerDestroyedproperty to the unregistered event args to let registered components know it was due to the XR Interaction Manager being destroyed. - Added new methods to
XRInteractionManagerto query whether a snap volume is registered and to get a list of registered snap volumes. - Added new methods and events to
XRInteractableSnapVolumeandXRInteractionManagerfor snap volume registration.
Changed
- Changed interaction components that need to find the
XRInteractionManagerand/or theXRUIInputModuleon theEventSystemto try finding them in all scenes that started being loaded at the time of search to allow for more flexibility in projects with multiple scenes. The default manager and input module will only be automatically created once all scenes finish loading. - Changed the XR Interaction Manager component so it cancels all hovers and selections and unregisters everything when that component is destroyed. The components that were registered with the destroyed manager will automatically be re-registered with another manager, either an active and enabled one in the scene or the next one to be enabled.
- Changed interaction components so they prioritize an enabled manager when there are multiple managers in the scene when initializing an unset Interaction Manager property reference.
- Changed the GameObject > XR menu items to no longer create an XR Interaction Manager GameObject automatically.
- Changed the XR Interaction Debugger window to grey out disabled XR Interaction Managers instead of hiding them.
- Changed some scripts to add
MonoBehaviourevent method implementations. Users who had already implemented either method in derived classes will need to call the base method.- Changed
XRInteractionManagerby adding theOnDestroymethod. - Changed
XRInputModalityManagerby addingAwakeandOnDestroymethods.
- Changed
- Changed the sample assets folders for the demo scenes in AR Starter Assets, Hands Interaction Demo, and Starter Assets package samples by renaming the folders to
DemoAssetsto help with naming consistency.
Fixed
- Fixed an issue with the
JumpProvidercontinually being stuck in theLocomotionState.Movingstate and never entering theLocomotionState.Endedstate. - Fixed the GameObject > XR > Interaction Manager menu item so it does not delete the GameObject upon Undo when the GameObject already existed.
- Fixed exception when Valid Target objects are destroyed when the XR Interaction Debugger window is open.
3.3.0
[3.3.0] - 2025-10-15
Added
- Added
ToggleComponentZonesample script to activate/deactivate the Gaze Interactor GameObjects when entering a trigger collider to prevent unintentional gaze-based selection in the rest of the scene. This component was added to the Starter Assets and implemented in theDemoSceneat the re-added "Gaze Interactable Objects" station. (Forward port from 2.6.5)
Changed
- Changed the Climb Provider component in the
XR Origin (XR Rig)prefab in the Starter Assets sample to also disable the Move provider when climbing. - Changed the
DemoScenein Starter Assets to disable the Gaze Interactor by default so it is not causing accidental selection of interactables based on head movement.
Fixed
- Fixed an issue where pinching with the Hand Interaction Profile caused the Interactables to stick to the thumb longer than desired, moving the object after a pinch was released. The
ReleaseThresholdButtonReadersample component was updated with new default values to ensure tighter press and release when pinching. (XRIT-334) - Fixed the Near-Far Interactor components to destroy the
AttachandStabilization Cast OriginGameObjects under the XR Origin that it creates when it is destroyed. This fix added newOnDestroymethods toInteractionCasterBaseandInteractionAttachController. Users who had already implemented either method in derived classes will need to call the base method. (XRIT-322) - Fixed a compiler issue with the
KeyboardOptimizersample component that occurs when TextMeshPro or Unity UI packages are not installed. - Fixed an issue with the AR Starter Assets spawning components, where a compiler dependency on the
ObjectSpawnercomponent in Starter Assets was causing an inability to run Project Validation rules to import the required sample dependency. - Fixed hand prefabs in the
Hands Interaction Demosample that were based on the hand models from the XR HandsHandVisualizersample. The new prefabs are built as a prefab variant, allowing smoother upgrade when the underlying models are updated. (Backport from 3.4.0-pre.1)
2.6.5
[2.6.5] - 2025-09-12
Added
- Added
ToggleComponentZonesample script to activate/deactivate the Gaze Interactor GameObjects when entering a trigger collider to prevent unintentional gaze-based selection in the rest of the scene. This component was added to the Starter Assets and implemented in theDemoSceneat the "Gaze Interactable Objects" station.
Changed
- Changed
XRRayInteractor.TryGetHitInfoto return the hit info of the selected interactable or highest scored interactable instead of the nearest raycast hit. (XRIT-141) (Backport from 3.1.0)