com.unity.xr.hands 1.5.0
Source docsNotes: processedReleased September 27, 2024
Unity Compatibility
Minimum Unity: 2021.3
Package Dependencies
- com.unity.inputsystem (1.3.0)
- com.unity.mathematics (1.2.6)
- com.unity.modules.xr (1.0.0)
- com.unity.xr.core-utils (2.2.0)
- com.unity.xr.management (4.0.1)
✨ Features
- Added `XRCommonHandGestures` and surfaced related data from the OpenXR Hand Interaction Profile extension.
- Added public `subsystem` property to `XRHandTrackingEvents` to let users get the `XRHandSubsystem` that is the source of the hand tracking data. Also added public `subsystem` property to `XRHandJointsUpdatedEventArgs` so it is available in the `XRHandTrackingEvents.jointsUpdated` event callback.
- Added support for a new `XRHandJointTrackingState.HighFidelityPose` flag to the XR Hands Subsystem.
- - Added support for the HighFidelityPose tracking flag to the OpenXRHandProvider.
- - Updated hand visualization sample to color debug joint cubes based on tracking fidelity: opaque white for joints which have a pose and are high fidelity; translucent red for joints which have a pose and are not high fidelity.
- Added OpenXR callbacks `HandTracking.subsystemCreated` and `HandTracking.destroyingSubsystem` for lifecycle response.
- Added OpenXR APIs `HandTracking.automaticallyInitializeSubsystem` and `HandTracking.EnsureSubsystemInitialized` to allow for delayed initialization of the `XRHandSubsystem`. To disable automatic creation in time, set `HandTracking.automaticallyInitializeSubsystem` to `false` in a `static` method decorated with `[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]`, then call `HandTracking.EnsureSubsystemInitialized` when ready.
📈 Improvements
- Allows for ignoring tip-most knuckle when calculating full curl when the `XRFingerShapeConfiguration`'s `minimumFullCurlDegrees3` or `maximumFullCurlDegrees3` is non-positive.
🔧 Bug Fixes
- Fixed reference direction when using `XRHandUserRelativeDirection.NoseDirection` for gesture detection.
- Fixed runtime invalidation, which resulted in crashes on some OpenXR runtimes. Runtime is invalidated when the `XrInstance` is destroyed.
- Fixed threshold-checking on gesture conditions to allow for the full range in `XRFingerShapeCondition`.
- `XRCommonHandGestures` data retrieval no longer GC.Allocs.
- Updated app space change behavior for XR provider to no longer destroy hand trackers only to recreate them the next update.
- Fixed issue where XrHands would try to update hand joints with an uninitialized XrTime value of XR\_INFINITE\_DURATION.
- Fixed an issue with packaging that prevented MacOS compatible libraries from being included as part of the package.
