Releases: needle-mirror/com.unity.xr.interaction.toolkit
Releases · needle-mirror/com.unity.xr.interaction.toolkit
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
ContinuousTurnProviderto match theSnapTurnProvideroptions. - 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
GravityProviderto handle gravity instead of being applied with the move and grab providers. - Added
JumpProviderto handle simple jumping functionality. This implements the addedIGravityControllerinterface. - Added ability to control whether gravity begins to apply or stays paused when releasing with the
ClimbProvider. - Added a
SimulatedDeviceLifecycleManagercomponent that handles all the simulated devices, and works in tandem with simulator classes such asXRDeviceSimulator. - Added a
SimulatedHandExpressionManagercomponent that handles the simulated hand expressions, and works in tandem with simulator classes such asXRDeviceSimulator. - Added the new
XR Interaction Simulatorwhich 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 Actionsin 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
JumpProviderandGravityProviderby default. - Changed some APIs used by the
XRPokeInteractorfor enabling the ability to poke UGUI canvases frominternaltopublicto 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
ContinuousMoveProviderto implement theIGravityControllerinterface. - Changed
ContinuousMoveProviderto handle falling movement differently than grounded movement. - Changed
ClimbProviderto implement theIGravityControllerinterface. - Changed
ClimbProviderto zero out gravity accumulation while climbing by implementing the addedIGravityControllerinterface. - Changed
ClimbProviderto no longer force unconstrained movement through collisions (seeforceUnconstrainedinXROriginMovement). - Changed scripts to improve performance of processing interaction strength (tagged
XRI.ProcessInteractionStrengthin 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
XRRayInteractorfor Projectile, Bezier Curve, and lines with multiple segments. - Added
Live Cone Cast Debug Visualsoption forCurveInteractionCasterandXRRayInteractorto 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
CurveInteractionCasterandXRRayInteractorcone cast angle and cone cast radius to improve performance. - Added
OnDrawGizmosSelecteddebug visuals toCurveInteractionCasterfor raycast, cone cast, and sphere cast. - Added
KeyboardOptimizerscript to the Spatial Keyboard sample. This script will update the keyboard canvas hierarchy to batch the canvas elements properly at runtime. - Added
KeyboardBatchFollowscript 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
hideKeyboardOnDisableproperty toXRKeyboardDisplay, which causes the display's observed keyboard to close when theXRKeyboardDisplayGameObject 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
XRSocketInteractorandXRSocketGrabTransformerwhere an interactable GameObject does not move to the position of theXRSocketInteractorwhen set as the Starting Selected Interactable. (XRIT-164)
2.6.3
[2.6.3] - 2024-07-23
Changed
- Changed
BaseTeleportationInteractableandClimbInteractableAwakelogic to limit expensiveFindObjectOfTypesearch forTeleportationProviderandClimbProviderto once per frame if thoseLocomotionProvidersare 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
XRSocketInteractorandXRSocketGrabTransformerwhere an interactable GameObject does not move to the position of theXRSocketInteractorwhen 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
XRInteractorLineVisualto 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
XRBaseGrabTransformerby no longer makingStartandOnDestroymethodsvirtual.
[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 Ladderprefab to the Starter Assets sample, and added an instance of this prefab to theClimb Sampleprefab. 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 Reticleprefab in the Starter Assets sample.
- Added an example implementation of this interface in the new
- Added a rotation threshold to
XRScreenSpaceControllerso 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 LadderandMulti Floor Ladderprefabs. - 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 Arrowprefab and supporting assets.
- Added a Climb Teleport Interactor instance in the
- Added public members
climbAnchorInteractable,climbAnchorInteractor, andclimbAnchorUpdatedtoClimbProvider. (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, andAttachPointVelocityTrackerto make the attach point velocity tracking functionality accessible outside of theXRBaseInteractor. (Backport from 3.0.0-pre.1) - Added public
RequestTeleportmethod toTeleportationAnchorto 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
ARTransformerto filter translatable planes by the AR Foundation plane classifications. Uses either a list ofPlaneClassificationenum (for older than ARF 6.0) orPlaneClassificationsflags enum (ARF 6.0 and newer) types. (Backport from 3.0.0-pre.2) - Added
ARTransformerEditorto 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 Sampleprefab in the Starter Assets sample so that the objects are set up in a newSingle Floor Ladderprefab. 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
XRPokeInteractorto useIAttachPointVelocityTrackerinstead of the velocity tracking that used to live inXRBaseInteractor. (Backport from 3.0.0-pre.1) - Changed
XRScreenSpaceControllerto 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
XRBaseGrabTransformerby makingStartandOnDestroymethodsvirtual. (Backport from 3.0.0-pre.2) - Changed
GrabTransformerRotationAxisLockby 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
TableHandleprefab to use theRotationAxisLockGrabTransformercomponent in Starter Assets.
- Changed the Hands Interaction Demo sample
- Changed
XRDeviceSimulatorto 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
XRPokeInteractorfor enabling the ability to poke UGUI canvases frominternaltopublicto allow for custom interactor implementations.
Fixed
- Fixed deprecation warnings when using
Rigidbody.velocityin 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 Actionsasset in the Starter Assets sample. - Added interaction layer configuration to
XRInteractorLineVisualto 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 | Rotationtracking 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
ValueDerivedButtonReaderfrom 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
GrabTransformerRotationAxisLockby 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
TableHandleprefab to use theRotationAxisLockGrabTransformercomponent in Starter Assets.
- Changed the Hands Interaction Demo sample
- Changed
XRDeviceSimulatorto 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
TouchscreenHoverFilterto 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
InteractionAttachControllerto 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
InteractionAttachControllerwould not properly update the attach transform position property when thesmoothOffsetproperty was set totrueanduseDistanceBasedVelocityScalingwas set tofalse. - Fixed issue with
InteractionAttachControllernot 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.velocityin 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
TouchscreenGestureInputLoaderand updated warning message whenTouchscreenGestureInputControlleris 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
NearFarInteractorwhen the interactor has a target filter assigned and the interactable being hovered has multiple colliders associated with it. - Fixed issue with
InteractionAttachControllerwhere velocity scaled motion would break two-handed interaction from afar.
2.5.4
[2.5.4] - 2024-04-05
Fixed
- Fixed compilation errors on tvOS platform where
ENABLE_VRis 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
TrackedGraphicRaycasterto clear poke interaction data when disabled. (XRIT-142) (Backport from 3.0.0) - Fixed warning about use of deprecated
VersionsInfo.verifiedby replacing withVersionsInfo.recommendedin 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
tapStartPositionbinding in the Starter Assets sampleXRI Default Input Actionsasset. 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 theXRScreenSpaceControlleralso fixes the selected object from staying selected and movable with the mobile device orientation for 0.2 seconds after a tap was released.
- Changed the Tap Start Position input action to remove the Tap interaction from the
3.0.1
[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
[3.0.0] - 2024-03-18
Added
- Added many improvements to the samples, mainly focusing on the material usage and better interaction feedback.
- Added
MaterialPipelineHandlerscriptable 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
ControllerAnimatorscript to Starter Assets sample to animate the thumbstick, trigger, and grip of the controller model. - Added Far Grab Interactable Objects station to
DemoScenein Starter Assets sample to demonstrate use of Far Attach Mode and Attach Transform setups.
- Added