Releases: needle-mirror/com.unity.xr.interaction.toolkit
Releases · needle-mirror/com.unity.xr.interaction.toolkit
3.1.1
[3.1.1] - 2025-02-28
Changed
- Changed the
XRI Default Input Actions
in the Starter Assets sample. TheSelect
andUI Press
actions now includeselect
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
[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
andXRRayInteractor
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 theTouchscreenGestureInputController
were madepublic
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 theScreen 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 theTouchscreenGestureInputController
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
toNone
for interactables in theHandsDemoScene
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 useenableMouseInput
,enableTouchInput
,enableGamepadInput
, andenableJoystickInput
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
andXRInteractionSimulator
by adding theOnDestroy
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 inOnEnable
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
[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 forXRRayInteractor
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
[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 theSnapTurnProvider
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 addedIGravityController
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 asXRDeviceSimulator
. - Added a
SimulatedHandExpressionManager
component that handles the simulated hand expressions, and works in tandem with simulator classes such asXRDeviceSimulator
. - 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
, andUIInputModule
).
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
andGravityProvider
by default. - Changed some APIs used by the
XRPokeInteractor
for enabling the ability to poke UGUI canvases frominternal
topublic
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 theIGravityController
interface. - Changed
ContinuousMoveProvider
to handle falling movement differently than grounded movement. - Changed
ClimbProvider
to implement theIGravityController
interface. - Changed
ClimbProvider
to zero out gravity accumulation while climbing by implementing the addedIGravityController
interface. - Changed
ClimbProvider
to no longer force unconstrained movement through collisions (seeforceUnconstrained
inXROriginMovement
). - 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
, andXRBodyTransformer.OnDrawGizmosSelected
).
3.0.7
[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
[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 forCurveInteractionCaster
andXRRayInteractor
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
andXRRayInteractor
cone cast angle and cone cast radius to improve performance. - Added
OnDrawGizmosSelected
debug visuals toCurveInteractionCaster
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
[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 toXRKeyboardDisplay
, which causes the display's observed keyboard to close when theXRKeyboardDisplay
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
andXRSocketGrabTransformer
where an interactable GameObject does not move to the position of theXRSocketInteractor
when set as the Starting Selected Interactable. (XRIT-164)
2.6.3
[2.6.3] - 2024-07-23
Changed
- Changed
BaseTeleportationInteractable
andClimbInteractable
Awake
logic to limit expensiveFindObjectOfType
search forTeleportationProvider
andClimbProvider
to once per frame if thoseLocomotionProviders
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
andXRSocketGrabTransformer
where an interactable GameObject does not move to the position of theXRSocketInteractor
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 makingStart
andOnDestroy
methodsvirtual
.
[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 theClimb 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
- 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 ofIXRCustomReticleProvider
. (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 an example implementation of this interface in the new
- 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
andMulti 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 a Climb Teleport Interactor instance in the
- Added public members
climbAnchorInteractable
,climbAnchorInteractor
, andclimbAnchorUpdated
toClimbProvider
. (Backport from 3.0.0-pre.1) - Added public method
Angle(in Vector3, in Vector3, out float)
, which finds the angle between two vectors, toBurstMathUtility
. (Backport from 3.0.0-pre.1) - Added
IAttachPointVelocityProvider
,IAttachPointVelocityTracker
, andAttachPointVelocityTracker
to make the attach point velocity tracking functionality accessible outside of theXRBaseInteractor
. (Backport from 3.0.0-pre.1) - Added public
RequestTeleport
method toTeleportationAnchor
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 protected
- Added option in
ARTransformer
to filter translatable planes by the AR Foundation plane classifications. Uses either a list ofPlaneClassification
enum (for older than ARF 6.0) orPlaneClassifications
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 newSingle 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 useIAttachPointVelocityTracker
instead of the velocity tracking that used to live inXRBaseInteractor
. (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 makingStart
andOnDestroy
methodsvirtual
. (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 toRotationAxisLockGrabTransformer
, and updated namespace to match the sample. (Backport from 3.0.2)- Changed the Hands Interaction Demo sample
TableHandle
prefab to use theRotationAxisLockGrabTransformer
component in Starter Assets.
- Changed the Hands Interaction Demo sample
- 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 frominternal
topublic
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
[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 setisTracked
, 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
[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 toRotationAxisLockGrabTransformer
, and updated namespace to match the sample.- Changed the Hands Interaction Demo sample
TableHandle
prefab to use theRotationAxisLockGrabTransformer
component in Starter Assets.
- Changed the Hands Interaction Demo sample
- 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 thesmoothOffset
property was set totrue
anduseDistanceBasedVelocityScaling
was set tofalse
. - 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 whenTouchscreenGestureInputController
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.