com.unity.xr.interaction.toolkit 3.0.6
com.unity.xr.interaction.toolkit
Source docsNotes: processedReleased October 18, 2024
Unity Compatibility
Minimum Unity: 2021.3
Package Dependencies
- com.unity.inputsystem (1.8.1)
- com.unity.mathematics (1.2.6)
- com.unity.modules.audio (1.0.0)
- com.unity.modules.imgui (1.0.0)
- com.unity.modules.physics (1.0.0)
- com.unity.modules.xr (1.0.0)
- com.unity.ugui (1.0.0)
- com.unity.xr.core-utils (2.2.3)
✨ Features
- 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.
- Added project validation rule to the Starter Assets sample to suggest upgrading Input System to 1.11.0 or newer when project-wide actions are used to avoid potential errors when custom types are used in the asset. (XRIT-157)
📈 Improvements
- Changed `TrackedDeviceGraphicRaycaster` and `TrackedDevicePhysicsRaycaster` hit distance calculation to take into account full distance from the cast origin when there are multiple ray points.
- Changed `TrackedDeviceGraphicRaycaster` and `TrackedDevicePhysicsRaycaster` hit distance comparison in `PerformRaycast` from less than to less than or equal to.
- Changed `CurveInteractionCaster` and `XRRayInteractor` hit distance calculation to take into account full distance from the cast origin when using multiple target curve segments.
- Changed `Teleport Interactor` prefab in the Starter Assets sample to enable Hit Closest Only to improve hitting on overlapping teleportation areas and teleportation anchors.
- Changed the Poke Interactor prefab by aligning the tip of the poke visual to the poke point.
- Changed the `XRPokeFollowAffordance` script to only affect the local z-axis if a canvas element.
- Changed the prefabs in the Spatial Keyboard sample to improve performance by supporting batching. Added `KeyboardOptimizer` component to `XRI Keyboard` and `KeyboardBatchFollow` component in `XRI Keyboard Key` prefab.
- Changed project validation scripts to report a warning instead of error if specific package samples are out of date.
- Updated many assets in the sample packages to help fit within file name length constraints on some operating systems.
🔧 Bug Fixes
- Fixed Material Pipeline Handler for the Spatial Keyboard sample materials.
- Fixed a small issue with `MaterialPipelineHandler` where corrupt assets could lead to a null reference exception.
- Fixed an issue where UI sub canvases were getting blocked by parent canvas items and not allowing interaction. (XRIT-99)
- Fixed `NearFarInteractor` and `XRRayInteractor` to still process hits in the case where the 2D and 3D hits are the same GameObject.
- Fixed issue with `XRRayInteractor` hover not working properly when a `TrackedDevicePhysicsRaycaster` is added to the scene. (XRIT-97)
- Fixed `CurveInteractionCaster` not working properly with more than 1 target curve segments.
- Fixed `SimpleAudioFeedback` and `SimpleHapticFeedback` so it does not replace the serialized `AudioSource` or `HapticImpulsePlayer` component reference during `Awake` when not null.
- Fixed an issue where Interactors that were subscribed to hover events were not getting Exit events when the UI object being hovered is disabled or destroyed in the scene.
- Fixed the pointer ID system in the `XRUIInputModule` to reuse pointer IDs. This fixes an issue with the pointer limit in UI Toolkit. (XRIT-184)
