Skip to content

Releases: needle-mirror/com.unity.xr.interaction.toolkit

3.3.1

23 Dec 07:36

Choose a tag to compare

[3.3.1] - 2025-12-16

Fixed

  • Fixed an issue with the JumpProvider continually being stuck in the LocomotionState.Moving state and never entering the LocomotionState.Ended state. (Backport from 3.4.0-pre.1)
  • Fixed an issue in which the HandMenu appears 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

13 Dec 08:38

Choose a tag to compare

[3.0.10] - 2025-12-09

Added

  • Added configurable functionality to ARContactSpawnTrigger in the AR Starter Assets sample to block spawning of objects on AR Planes when the active interactor in the associated XRInteractionGroup is either hovering or selecting an interactable object. (Backport from 3.2)

Fixed

  • Fixed an issue with TryGetCurveEndPoint in the NearFarInteractor, 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 NearFarInteractor where it would ignore the canProcess property on an IXRTargetFilter, allowing it to always process the filter. (Backport from 3.2.1)
  • Fixed an issue in which the HandMenu appears 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

11 Nov 03:50

Choose a tag to compare

[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 ReleaseThresholdButtonReader sample 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 Demo sample that were based on the hand models from the XR Hands HandVisualizer sample. 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 JumpProvider continually being stuck in the LocomotionState.Moving state and never entering the LocomotionState.Ended state. (Backport from 3.4.0-pre.1)

3.1.3

07 Nov 03:00

Choose a tag to compare

[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 NullReferenceException in 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

04 Nov 02:08

Choose a tag to compare

[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

25 Oct 08:33

Choose a tag to compare

[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

18 Oct 08:18

Choose a tag to compare

[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 managerDestroyed property to the unregistered event args to let registered components know it was due to the XR Interaction Manager being destroyed.
  • Added new methods to XRInteractionManager to query whether a snap volume is registered and to get a list of registered snap volumes.
  • Added new methods and events to XRInteractableSnapVolume and XRInteractionManager for snap volume registration.

Changed

  • Changed interaction components that need to find the XRInteractionManager and/or the XRUIInputModule on the EventSystem to 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 MonoBehaviour event method implementations. Users who had already implemented either method in derived classes will need to call the base method.
    • Changed XRInteractionManager by adding the OnDestroy method.
    • Changed XRInputModalityManager by adding Awake and OnDestroy methods.
  • 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 DemoAssets to help with naming consistency.

Fixed

  • Fixed an issue with the JumpProvider continually being stuck in the LocomotionState.Moving state and never entering the LocomotionState.Ended state.
  • 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

18 Oct 08:17

Choose a tag to compare

[3.3.0] - 2025-10-15

Added

  • Added ToggleComponentZone sample 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 the DemoScene at 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 DemoScene in 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 ReleaseThresholdButtonReader sample 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 Attach and Stabilization Cast Origin GameObjects under the XR Origin that it creates when it is destroyed. This fix added new OnDestroy methods to InteractionCasterBase and InteractionAttachController. 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 KeyboardOptimizer sample 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 ObjectSpawner component 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 Demo sample that were based on the hand models from the XR Hands HandVisualizer sample. 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

17 Sep 00:58

Choose a tag to compare

[2.6.5] - 2025-09-12

Added

  • Added ToggleComponentZone sample 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 the DemoScene at the "Gaze Interactable Objects" station.

Changed

  • Changed XRRayInteractor.TryGetHitInfo to 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

13 Aug 22:21

Choose a tag to compare

[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 XRInteractionManager to set parent interactable dependencies which determine which interactables must be processed before another interactable. Use RegisterParentRelationship to register a parent interactable and GetParentRelationships to 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 XRBaseInteractor and XRBaseInteractable can implement IXRParentInteractableLinker to enable this functionality.
    • Added Parent Interactable column to the XR Interaction Debugger window to show registered and inherited parent interactables.

Changed

  • Changed the public SelectEnter, HoverEnter, and FocusEnter methods in XRInteractionManager to check conditions before allowing the state change and log a warning if it wasn't allowed. Added new public methods SelectEnterUnconditionally, HoverEnterUnconditionally, and FocusEnterUnconditionally that 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, and IsFocusPossible for exact conditions.
    • This change means that XRBaseInteractor.StartManualInteraction and XRBaseInteractor.startingSelectedInteractable which use the public XRInteractionManager.SelectEnter method can cause the select to be prevented.
    • Users that override those existing public virtual methods may need to override the new -Unconditionally methods in addition or instead since now only the new methods are invoked during the update loop of the manager.
  • Changed XR Socket Interactor to draw the interactable hover mesh during LateUpdate instead of Update to 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.