Skip to content

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

3.1.1

03 Mar 11:14
Compare
Choose a tag to compare

[3.1.1] - 2025-02-28

Changed

  • Changed the XRI Default Input Actions in the Starter Assets sample. The Select and UI Press actions now include select bindings from the Khronos Simple Controller (OpenXR).

Fixed

  • Fixed issue with input field caret position when using mouse and keyboard input on XRKeyboardDisplay input fields. Users will need to reimport the Spatial Keyboard sample to get the updated component script. (XRIT-230)
  • Fixed tooltip in XR Input Modality Manager component.
  • Fixed Editor analytics schema version.
  • Fixed API Updater prompts and use of deprecated method warnings in visionOS sample.
  • Fixed XR UI Input Module so the Submit and Cancel UI actions will now respect configured interactions. This matches the change made to the InputSystemUIInputModule in Input System 1.9.0.

3.1.0

24 Feb 11:15
Compare
Choose a tag to compare

[3.1.0] - 2025-02-19

Added

  • Added code samples for interaction events and interaction manager registration events in interaction events documentation.
  • Added warning help box to CurveInteractionCaster and XRRayInteractor when using cone casting with multiple segments to inform users about potential computation cost.
  • Added a Drag Start Position Input property to the Screen Space Ray Pose Driver component to improve the ability to select a dragged object in AR projects. The ray will be initially cast from the touch start position instead of the current drag position when the drag gesture starts in order to improve the ability to pick small objects.
  • Added a Tap Duration property to the Touchscreen Gesture Input Loader component to configure the threshold that a touch and release must occur within for a tap gesture. The GestureRecognizer classes used in the TouchscreenGestureInputController were made public to allow the configuration properties to be modified.
  • Added Editor analytics to gather data that helps Unity understand how the package is being used in projects. If you don't want to send data to Unity, please see Editor analytics documentation for how to disable analytics in your project.

Changed

  • Changed the tap cancel duration from 0.3 seconds to 0.5 seconds on the TouchscreenGestureInputController input device created by the Touchscreen Gesture Input Loader component. This affects the Screen Space Ray Interactor prefab in the AR Starter Assets sample. This should make selecting objects more forgiving with a slower tap. (XRIT-208)
  • Changed the Max Tap Duration on the Tap interactions from the default Input System (0.2 seconds) to 0.5 seconds on the mouse bindings in both the Tap Start Position and Spawn Object input actions. This should make selecting and spawning objects more forgiving with a slower tap when using the mouse when simulating in the Unity Editor. (XRIT-208)
  • Changed Spawn Trigger Type from Select Attempt to Input Action on the AR Interactor Spawn Trigger component in the Screen Space Ray Interactor prefab in the AR Starter Assets sample. Changed the binding in the Spawn Object input action to use the tap gesture in the TouchscreenGestureInputController input device instead of the generic <Touchscreen>/Press binding with the Tap interaction so that spawning uses consistent tap cancel logic as selection taps.
  • Changed Min Scale from 0.05 to 0.2 on the AR Transformer component on each of the spawning objects in the ARDemoScene.
  • Changed RigidBody.Interpolate to None for interactables in the HandsDemoScene to fix interactable position issues when the table is moved.
  • Changed XRUIInputModule to now initialize to the Input System when active input handling in Project Settings is set to Input System Package (New) or Both.
  • Changed XRUIInputModule to use enableMouseInput, enableTouchInput, enableGamepadInput, and enableJoystickInput when using Input System Package (New) as the backend when none of the Input System UI Actions are set, not just when using Input Manager (Old).
  • Changed XRRayInteractor.TryGetHitInfo to return the hit info of the selected interactable or highest scored interactable instead of the nearest raycast hit. (XRIT-141)
  • Changed XRDeviceSimulator and XRInteractionSimulator by adding the OnDestroy method. Users who had already implemented either method in derived classes will need to call the base method.

Deprecated

  • Deprecated XRUIInputModule.activeInputMode and hide in the Inspector window since the backing serialized field is ignored and instead set in OnEnable to Input System Actions when possible.

Fixed

  • Fixed an issue with the XRPokeInteractor that would attempt to register a valid target for each collider that was poked for a single interactable. (XRIT-209)
  • Fixed the AR Interactor Spawn Trigger component in the AR Starter Assets sample to avoid spawning a new object when tapping to select an existing object caused by the Spawn Object and Select inputs using different binding sources that have a frame delay.
  • Fixed the play mode menu in the XRInteractionSimulator UI to reflect the controller or hand quick-action settings of the user rather than the default.
  • Fixed missing tooltip on the Sphere Interaction Caster component for the Physics Trigger Interaction property. Updated all related tooltips and documentation to clarify that Use Global refers to the Queries Hit Triggers setting in Edit > Project Settings > Physics.
  • Fixed an issue where taps were lost on mobile devices after interacting with screen-space UI. (XRIT-210)

2.6.4

10 Feb 14:14
Compare
Choose a tag to compare

[2.6.4] - 2025-02-04

Added

  • Added cone casting support to XRRayInteractor for Projectile, Bezier Curve, and lines with multiple segments. (Backport from 3.0.6)
  • Added Live Cone Cast Debug Visuals option for XRRayInteractor to display a more detailed cone cast debug visual. (Backport from 3.0.6)
    • Note, this is only displayed in the Editor during Play mode when the GameObject is selected in the hierarchy. (Backport from 3.0.6)
  • Added math caching for XRRayInteractor cone cast angle and cone cast radius to improve performance. (Backport from 3.0.6)

3.1.0-pre.1

16 Dec 14:14
Compare
Choose a tag to compare

[3.1.0-pre.1] - 2024-12-12

Added

  • Added the ability to trigger a 180° degree snap turn around on the Continuous Turn Provider directly instead of having to use a partially enabled Snap Turn Provider. Added properties to enable or disable left-right turning and turn around in the ContinuousTurnProvider to match the SnapTurnProvider options.
  • Added support for anchor manipulation from controller thumbstick input to the Near-Far Interactor GameObject. The Interaction Attach Controller now has additional properties when Use Manipulation Input is enabled for allowing rotation (horizontal and vertical) and translation along the selection line.
  • Added custom Inspector window for the Interaction Attach Controller.
  • Added GravityProvider to handle gravity instead of being applied with the move and grab providers.
  • Added JumpProvider to handle simple jumping functionality. This implements the added IGravityController interface.
  • Added ability to control whether gravity begins to apply or stays paused when releasing with the ClimbProvider.
  • Added a SimulatedDeviceLifecycleManager component that handles all the simulated devices, and works in tandem with simulator classes such as XRDeviceSimulator.
  • Added a SimulatedHandExpressionManager component that handles the simulated hand expressions, and works in tandem with simulator classes such as XRDeviceSimulator.
  • Added the new XR Interaction Simulator which provides a simplified interface for simulating XR interaction in the editor.
  • Added public properties that wrap serialized fields in some behaviors and their corresponding Editor classes (CurveInteractionCaster, XRInteractorLineVisual, XRRayInteractor, and UIInputModule).

Changed

  • Changed the XRI Default Input Actions in the Starter Assets sample to include a Jump Input Action.
  • Changed the XR Origin (XR Rig) prefab in the Starter Assets sample to include the JumpProvider and GravityProvider by default.
  • Changed some APIs used by the XRPokeInteractor for enabling the ability to poke UGUI canvases from internal to public to allow for custom interactor implementations. (Forward port from 2.6.0)
  • Changed Snap Turn Provider turn around behavior to only trigger once per turn around action. Repeat turns while the thumbstick is pushed in a direction will thus only apply to left or right.
  • Changed the XR Origin (XR Rig) prefab in the Starter Assets sample to enable turn around on the Continuous Turn Provider so that functionality is enabled by default if Smooth Turn Enabled is true on the Controller Input Action Manager.
  • Changed the Near-Far Interactor prefab in the Starter Assets sample to enable anchor manipulation (Translate and Horizontal Rotation).
  • Changed ContinuousMoveProvider to implement the IGravityController interface.
  • Changed ContinuousMoveProvider to handle falling movement differently than grounded movement.
  • Changed ClimbProvider to implement the IGravityController interface.
  • Changed ClimbProvider to zero out gravity accumulation while climbing by implementing the added IGravityController interface.
  • Changed ClimbProvider to no longer force unconstrained movement through collisions (see forceUnconstrained in XROriginMovement).
  • Changed scripts to improve performance of processing interaction strength (tagged XRI.ProcessInteractionStrength in Profiler).
  • Changed some internal methods to be public or protected (AttachPointVelocityTracker.ResetVelocityTracking, CurveInteractionCaster.OnDrawGizmosSelected, and XRBodyTransformer.OnDrawGizmosSelected).

3.0.7

15 Nov 11:14
Compare
Choose a tag to compare

[3.0.7] - 2024-11-06

Added

  • Added an extra gizmo to the XR Body Transformer to show locomotion collision constraints for the Character Controller. (XRIT-181)
  • Added an optional bypass for UI Toolkit events that may cause incorrect events to get sent to UI Toolkit elements such as scroll views. For more information see the manual page for XRUIInputModule. (XRIT-203)

Changed

  • Changed scripts to use Transform methods for getting or setting both position and rotation in a single method call to improve performance.

Fixed

3.0.6

18 Oct 10:14
Compare
Choose a tag to compare

[3.0.6] - 2024-10-15

Added

  • Added cone casting support to XRRayInteractor for Projectile, Bezier Curve, and lines with multiple segments.
  • Added Live Cone Cast Debug Visuals option for CurveInteractionCaster and XRRayInteractor to display a more detailed cone cast debug visual.
    • Note, this is only displayed in the Editor during Play mode when the GameObject is selected in the hierarchy.
  • Added math caching for CurveInteractionCaster and XRRayInteractor cone cast angle and cone cast radius to improve performance.
  • Added OnDrawGizmosSelected debug visuals to CurveInteractionCaster for raycast, cone cast, and sphere cast.
  • Added KeyboardOptimizer script to the Spatial Keyboard sample. This script will update the keyboard canvas hierarchy to batch the canvas elements properly at runtime.
  • Added KeyboardBatchFollow script to the Spatial Keyboard sample to update the position of a list of transforms to a specific transform at runtime.

3.0.5

30 Jul 20:10
Compare
Choose a tag to compare

[3.0.5] - 2024-07-29

Added

  • Added XRI 3.0 upgrade guide documentation.
  • Added dependency guards to the Spatial Keyboard sample to prevent compile errors if UGUI is missing in Unity 6 or if TextMesh Pro is missing in earlier editor versions.
  • Added project validation rules to the Spatial Keyboard sample for TextMesh Pro and UGUI.
  • Added hideKeyboardOnDisable property to XRKeyboardDisplay, which causes the display's observed keyboard to close when the XRKeyboardDisplay GameObject is disabled. This property is enabled by default.

Fixed

  • Fixed Teleportation Area component so it filters out Sphere Cast overlap hits at the start of the sweep so it no longer teleports to (0, 0, 0). Changed so the selection is blocked so the XR Interactor Line Visual uses its blocked style in that case. (XRIT-138)
  • Fixed Sector interaction Editor to draw all properties in the Input Actions Editor window in Unity 2022.3 or newer.
  • Fixed regression with XRSocketInteractor and XRSocketGrabTransformer where an interactable GameObject does not move to the position of the XRSocketInteractor when set as the Starting Selected Interactable. (XRIT-164)

2.6.3

29 Jul 12:15
Compare
Choose a tag to compare

[2.6.3] - 2024-07-23

Changed

  • Changed BaseTeleportationInteractable and ClimbInteractable Awake logic to limit expensive FindObjectOfType search for TeleportationProvider and ClimbProvider to once per frame if those LocomotionProviders are left null in the inspector. (Backport from 3.0.4)

Fixed

  • Fixed Teleportation Area component so it filters out Sphere Cast overlap hits at the start of the sweep so it no longer teleports to (0, 0, 0). Changed so the selection is blocked so the XR Interactor Line Visual uses its blocked style in that case. (XRIT-138) (Backport from 3.0.5)
  • Fixed Sector interaction Editor to draw all properties in the Input Actions Editor window in Unity 2022.3 or newer. (Backport from 3.0.5)
  • Fixed regression with XRSocketInteractor and XRSocketGrabTransformer where an interactable GameObject does not move to the position of the XRSocketInteractor when set as the Starting Selected Interactable. (XRIT-164) (Backport from 3.0.5)

[2.6.2] - 2024-06-05

Fixed

  • Fixed bug fix backport to match version from 3.0.4.

[2.6.1] - 2024-05-31

Added

  • Added interaction layer configuration to XRInteractorLineVisual to allow specification of which interactables cause a straight line ray cast to bend to the attach transform on select. (Backport from 3.0.4)

Fixed

  • Fixed missing Scripting API documentation on public enum value. (Backport from 3.0.3)
  • Fixed the AR Starter Assets sample to import the verified version of AR Foundation package instead of the latest compatible version when using the Fix button in the Project Validation window on Unity 2021.3. (Backport from 3.0.4)
  • Reverted breaking API change made in version 2.6.0 to XRBaseGrabTransformer by no longer making Start and OnDestroy methods virtual.

[2.6.0] - 2024-05-01

Added

  • Added a new type of teleport interactable, Teleportation Multi-Anchor Volume, that enables teleportation to one of several destination poses chosen by a filter object that implements ITeleportationVolumeAnchorFilter. (Backport from 3.0.0-pre.1)
    • Added FurthestTeleportationAnchorFilter, which is the default filter that chooses the furthest anchor as the destination. Use the menu item Assets > Create > XR > Locomotion > Furthest Teleportation Anchor Filter to create an instance of this filter.
    • Added GazeTeleportationAnchorFilter, which chooses a destination based on where the user is looking and how far away the anchor is. Use the menu item Assets > Create > XR > Locomotion > Gaze Teleportation Anchor Filter to create an instance of this filter.
    • Added menu item Assets > Create > XR > Locomotion > Teleport Volume Destination Settings, which creates a Teleport Volume Destination Settings Datum asset.
    • Added Multi Floor Ladder prefab to the Starter Assets sample, and added an instance of this prefab to the Climb Sample prefab. This prefab includes another ladder Climb Interactable and a Teleportation Multi-Anchor Volume that uses a Gaze Teleportation Anchor Filter to teleport to one of three destinations.
  • Added the interface IXRInteractableCustomReticle, which allows a component on an interactable's Custom Reticle prefab to respond to the interactable instantiating the reticle and attaching it to an instance of IXRCustomReticleProvider. (Backport from 3.0.0-pre.1)
    • Added an example implementation of this interface in the new Climb Teleport Reticle prefab in the Starter Assets sample.
  • Added a rotation threshold to XRScreenSpaceController so that scaling is not triggered while rotating. (Backport from 3.0.0-pre.1)
  • Added in-editor touchscreen gesture support for rotation and scaling in the starter assets. The input action map now has bindings for the related gestures. (Backport from 3.0.0-pre.1)
  • Added Climb Teleport Interactor, which enables assistance with climb locomotion by teleporting the user to a specific destination when they end a climb interaction. (Backport from 3.0.0-pre.1)
    • Added the property Climb Assistance Teleport Volume to Climb Interactable to enable this teleportation behavior for a specific climb interactable.
    • Made the following changes to the Starter Assets sample to demonstrate climb teleportation:
      • Added a Climb Teleport Interactor instance in the XR Origin (XR Rig) prefab under Locomotion System > Climb.
      • Assigned the Climb Assistance Teleport Volume references in the Single Floor Ladder and Multi Floor Ladder prefabs.
      • Added the affordance component Climb Teleport Destination Indicator, and added an instance of this component to the XR Origin (XR Rig) prefab.
      • Added the Climb Teleport Arrow prefab and supporting assets.
  • Added public members climbAnchorInteractable, climbAnchorInteractor, and climbAnchorUpdated to ClimbProvider. (Backport from 3.0.0-pre.1)
  • Added public method Angle(in Vector3, in Vector3, out float), which finds the angle between two vectors, to BurstMathUtility. (Backport from 3.0.0-pre.1)
  • Added IAttachPointVelocityProvider, IAttachPointVelocityTracker, and AttachPointVelocityTracker to make the attach point velocity tracking functionality accessible outside of the XRBaseInteractor. (Backport from 3.0.0-pre.1)
  • Added public RequestTeleport method to TeleportationAnchor to allow a teleport to the anchor to be triggered manually, such as from a UI button click event, instead of only from interaction events like select exited. Teleport to anchor can also be triggered from the Inspector window in the More (⋮) menu during Play mode for debugging. (Backport from 3.0.0-pre.2)
    • Added protected SendTeleportRequest(IXRInteractor) to the base abstract class to allow the teleport to be triggered from additional contexts.
  • Added option in ARTransformer to filter translatable planes by the AR Foundation plane classifications. Uses either a list of PlaneClassification enum (for older than ARF 6.0) or PlaneClassifications flags enum (ARF 6.0 and newer) types. (Backport from 3.0.0-pre.2)
  • Added ARTransformerEditor to customize the Inspector window of the AR Transformer component. (Backport from 3.0.0-pre.2)
  • Added Spatial Keyboard sample demo scene, scripts, and prefabs. (Backport from 3.0.2)

Changed

  • Changed setup of the ladder and elevated teleport area in the Climb Sample prefab in the Starter Assets sample so that the objects are set up in a new Single Floor Ladder prefab. This prefab also contains a Teleportation Multi-Anchor Volume to allow teleportation to the top or bottom, whichever is furthest from the user. (Backport from 3.0.0-pre.1)
  • Changed XRPokeInteractor to use IAttachPointVelocityTracker instead of the velocity tracking that used to live in XRBaseInteractor. (Backport from 3.0.0-pre.1)
  • Changed XRScreenSpaceController to add a rotation threshold so that scaling is not triggered while rotating. This behavior can be disabled by disabling Use Rotation Threshold. (Backport from 3.0.0-pre.1)
  • Changed XRBaseGrabTransformer by making Start and OnDestroy methods virtual. (Backport from 3.0.0-pre.2)
  • Changed GrabTransformerRotationAxisLock by moving the script from the Hands Interaction Demo sample to the Starter Assets sample, renamed to RotationAxisLockGrabTransformer, and updated namespace to match the sample. (Backport from 3.0.2)
    • Changed the Hands Interaction Demo sample TableHandle prefab to use the RotationAxisLockGrabTransformer component in Starter Assets.
  • Changed XRDeviceSimulator to drive AR Foundation's Simulation Camera so that there is no conflict between XR Simulation and XR Device Simulator. Requires AR Foundation 6.0.0 or newer. (Backport from 3.0.2)
  • Changed XR Poke Interactor to reset poke velocity tracking on hover to improve accuracy of poke interactions. (Backport from 3.0.2)
  • Changed some APIs used by the XRPokeInteractor for enabling the ability to poke UGUI canvases from internal to public to allow for custom interactor implementations.

Fixed

  • Fixed deprecation warnings when using Rigidbody.velocity in Unity 2023.3 or newer. (Backport from 3.0.2)
  • Fixed an issue where poke filters on nested transforms with different scales would fail to compute a valid poke axis length. (Backport from 3.0.2)

3.0.4

24 Jun 18:14
Compare
Choose a tag to compare

[3.0.4] - 2024-06-20

Added

  • Added support for Hand Interaction Profile (OpenXR) to the XR Input Modality Manager component and added bindings to the XRI Default Input Actions asset in the Starter Assets sample.
  • Added interaction layer configuration to XRInteractorLineVisual to allow specification of which interactables cause a straight line ray cast to bend to the attach transform on select.

Changed

  • Changed logic in the XR Input Modality Manager component to accept Position | Rotation tracking state flags as sufficient conditions to enable the input modality to work around devices that do not set isTracked, such as some Windows Mixed Reality controllers.
  • Changed XR Origin Hands (XR Rig) by updating both Near-Far Interactor GameObjects in the hands hierarchy to use different input actions for UI Press and Select inputs.
    • This was needed since the bindings are now different for those two input actions. The Value Derived Button Reader component was moved from the Near-Far Interactor GameObject to two child GameObjects for better readability to distinguish between Select Input and UI Press Input. It was also replaced with a new Release Threshold Button Reader component to also use the bool actions in the logic for being performed.
  • Changed default value of Press Threshold in ValueDerivedButtonReader from 0.85 to 0.8.

3.0.3

03 May 19:14
Compare
Choose a tag to compare

[3.0.3] - 2024-05-02

Fixed

  • Fixed missing Scripting API documentation on public enum value.

[3.0.2] - 2024-05-01

Added

  • Added Spatial Keyboard sample demo scene, scripts, and prefabs.
  • Added visionOS sample, including a Volume demo scene, and a simple XR Origin Rig specifically configured for Mixed Reality, bounded and unbounded on visionOS.

Changed

  • Changed GrabTransformerRotationAxisLock by moving the script from the Hands Interaction Demo sample to the Starter Assets sample, renamed to RotationAxisLockGrabTransformer, and updated namespace to match the sample.
    • Changed the Hands Interaction Demo sample TableHandle prefab to use the RotationAxisLockGrabTransformer component in Starter Assets.
  • Changed XRDeviceSimulator to drive AR Foundation's Simulation Camera so that there is no conflict between XR Simulation and XR Device Simulator. Requires AR Foundation 6.0.0 or newer.
  • Changed XR Poke Interactor to reset poke velocity tracking on hover to improve accuracy of poke interactions.
  • Changed TouchscreenHoverFilter to also use the interactor's select input state to fix an issue where an interactable object under the last tap position would start hovering when touching somewhere else on the screen before moving to exceed the drag gesture move threshold.
  • Updated Editor and Runtime .asmdef (assembly definition) files to strip out unnecessary version defines and related preprocessor define code usages for the Input System package.
  • Improved behavior of InteractionAttachController to more accurately scale motion along the initial grab direction, rather than a fixed forward axis based on the interactor's forward direction.

Fixed

  • Fixed an issue where the InteractionAttachController would not properly update the attach transform position property when the smoothOffset property was set to true and useDistanceBasedVelocityScaling was set to false.
  • Fixed issue with InteractionAttachController not resetting the velocity to zero when object is first grabbed, causing some edge cases where object moves on a first grab.
  • Fixed the XR Interactor Line Visual from bending towards an XR Interactable Snap Volume behind UI when the valid UI hit is closest.
  • Fixed tap gesture detection for selecting and spawning interactable objects in AR scenes. (XRIT-145)
  • Fixed deprecation warnings when using Rigidbody.velocity in Unity 2023.3 or newer.
  • Fixed broken material reference in Teleport Area prefab in the Starter Assets sample.
  • Fixed compilation errors on tvOS platform in TouchscreenGestureInputLoader and updated warning message when TouchscreenGestureInputController is not available on the platform.
  • Fixed an issue where poke filters on nested transforms with different scales would fail to compute a valid poke axis length.
  • Fixed wobble that occurred when pointing objects up or down when using stabilization with the InteractionAttachController.
  • Fixed Extending XR Interaction Toolkit documentation for namespace changes and class changes in package version 3.0.
  • Fixed the error thrown from NearFarInteractor when the interactor has a target filter assigned and the interactable being hovered has multiple colliders associated with it.
  • Fixed issue with InteractionAttachController where velocity scaled motion would break two-handed interaction from afar.