Releases: needle-mirror/com.unity.xr.interaction.toolkit
Releases · needle-mirror/com.unity.xr.interaction.toolkit
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)
3.3.0-pre.1
[3.3.0-pre.1] - 2025-08-11
Added
- Added ability to control the order that interactables are processed (
IXRInteractable.ProcessInteractable). See Processing interactables in the Interaction overview manual page for more information.- Added new methods to
XRInteractionManagerto set parent interactable dependencies which determine which interactables must be processed before another interactable. UseRegisterParentRelationshipto register a parent interactable andGetParentRelationshipsto query the registered parent interactables. - Added Parent Interactable and Auto Find Parent Interactable properties to interactors and interactables to register the component's parent interactable dependency when the component is registered with the XR Interaction Manager. Custom components that do not derive from
XRBaseInteractorandXRBaseInteractablecan implementIXRParentInteractableLinkerto enable this functionality. - Added Parent Interactable column to the XR Interaction Debugger window to show registered and inherited parent interactables.
- Added new methods to
Changed
- Changed the
publicSelectEnter,HoverEnter, andFocusEntermethods inXRInteractionManagerto check conditions before allowing the state change and log a warning if it wasn't allowed. Added newpublicmethodsSelectEnterUnconditionally,HoverEnterUnconditionally, andFocusEnterUnconditionallythat replicate the old functionality. (XRIT-261)- Conditions include whether the interactor and interactable are registered with that manager, whether the interaction layer masks are compatible, and whether filters allow the operation. See
IsSelectPossible,IsHoverPossible, andIsFocusPossiblefor exact conditions. - This change means that
XRBaseInteractor.StartManualInteractionandXRBaseInteractor.startingSelectedInteractablewhich use thepublicXRInteractionManager.SelectEntermethod can cause the select to be prevented. - Users that override those existing
public virtualmethods may need to override the new-Unconditionallymethods in addition or instead since now only the new methods are invoked during the update loop of the manager.
- Conditions include whether the interactor and interactable are registered with that manager, whether the interaction layer masks are compatible, and whether filters allow the operation. See
- Changed XR Socket Interactor to draw the interactable hover mesh during
LateUpdateinstead ofUpdateto allow interactables to process first. - Changed the XR Interaction Debugger window to show the interactors and interactables in the order that they are processed instead of alphabetically.