Skip to content

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

3.1.0-pre.1

16 Dec 14:14

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

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

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

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

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

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

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.

2.5.4

11 Apr 19:12

Choose a tag to compare

[2.5.4] - 2024-04-05

Fixed

  • Fixed compilation errors on tvOS platform where ENABLE_VR is not defined when AR Foundation is installed. Also fixed when XR Hands is installed in the Hands Interaction Demo sample. (Backport from 3.0.0)
  • Fixed TrackedGraphicRaycaster to clear poke interaction data when disabled. (XRIT-142) (Backport from 3.0.0)
  • Fixed warning about use of deprecated VersionsInfo.verified by replacing with VersionsInfo.recommended in the Hands Interaction Demo sample in Unity 2022.2 and newer. (Backport from 3.0.0)
  • Fixed the XR Interactor Line Visual from bending towards an XR Interactable Snap Volume behind UI when the valid UI hit is closest. (Backport from 3.0.2)
  • Fixed tap gesture detection for selecting and spawning interactable objects in AR scenes. (XRIT-145) (Backport from 3.0.2)
    • Changed the Tap Start Position input action to remove the Tap interaction from the tapStartPosition binding in the Starter Assets sample XRI Default Input Actions asset. The sample will need to be reimported to remove the Tap interaction from the binding for taps to be functional. This change along with changes to the XRScreenSpaceController also fixes the selected object from staying selected and movable with the mobile device orientation for 0.2 seconds after a tap was released.

3.0.1

20 Mar 11:17

Choose a tag to compare

[3.0.1] - 2024-03-19

Fixed

  • Fixed warnings such as "Main Object Name '_MaterialPipelineHandler' does not match filename 'MaterialPipelineHandler'" in the package samples.

3.0.0

19 Mar 17:13

Choose a tag to compare

[3.0.0] - 2024-03-18

Added

  • Added many improvements to the samples, mainly focusing on the material usage and better interaction feedback.
    • Added MaterialPipelineHandler scriptable object to Starter Assets sample which allows the materials used in the sample to automatically adjust for the Built-in Render Pipeline or the Universal Render Pipeline (URP).
    • Added ControllerAnimator script to Starter Assets sample to animate the thumbstick, trigger, and grip of the controller model.
    • Added Far Grab Interactable Objects station to DemoScene in Starter Assets sample to demonstrate use of Far Attach Mode and Attach Transform setups.

Changed