UxrHandTracking Class

Base class for hand tracking. Includes base functionality to update the avatar and calibrate the skeleton based on a well-known pose.

Inheritance Hierarchy

System.Object
  Object
    Component
      Behaviour
        MonoBehaviour
          UltimateXR.Core.Components.UxrComponent
            UltimateXR.Core.Components.UxrComponent(UxrTrackingDevice)
              UltimateXR.Core.Components.Composite.UxrAvatarComponent(UxrTrackingDevice)
                UltimateXR.Devices.UxrTrackingDevice
                  UltimateXR.Devices.UxrHandTracking
                    UltimateXR.Devices.Integrations.Meta.UxrMetaHandTracking
Namespace: UltimateXR.Devices
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0

Syntax

C#

public abstract class UxrHandTracking : UxrTrackingDevice


The UxrHandTracking type exposes the following members.

Constructors

NameDescription
Protected methodUxrHandTracking

Properties

NameDescription
Public propertyHasCalibrationData Gets whether the component contains calibration data collected by using the inspector.
Public propertyIsAvailable Gets whether tracking data is currently available for any hand.
Public propertyIsLeftHandAvailable Gets whether there is tracking data currently available for the left hand.
Public propertyIsRightHandAvailable Gets whether there is tracking data currently available for the right hand.
Public propertyTrackingUpdateOrder There are cases where more than one tracking device might be active. We use TrackingUpdateOrder for cases where there is one that should be applied after the other(s). For example an Oculus Rift together with a Leap Motion setup has one tracking component for each. But Leap Motion should override the tracking values of the rift controllers if the Leap Motion component is active. In this case Oculus, like most tracking devices, has a value of OrderStandard while Leap Motion has a value of OrderPostprocess so that the tracking devices update the avatar in the correct order. (Overrides UxrTrackingDevice.TrackingUpdateOrder.)
Public propertyUseCalibration Gets or sets whether to use calibration data to minimize the mismatches between the particular hand rig used and the tracking values.

Methods

NameDescription
Protected methodApplyBoneCalibration Applies the calibration data collected by CollectCalibrationData(UxrHandSide) so that the hands look as close to the tracking data as possible. The goal is to remove the slight differences between a random rigged hand and the tracked skeleton data.
Protected methodAwake Subscribes to events so that the component can be enabled or disabled based on the presence of hand tracking. (Overrides UxrAvatarComponent<T>.Awake().)
Public methodBuildCalibrationCache Creates the calibration cache to be able to get calibration of a given transform using a dictionary.
Public methodClearCalibrationData Clears the calibration data for a given hand.
Public methodCollectCalibrationData Collects the calibration data for a given hand.
Protected methodOnDestroy Unsubscribes from events. (Overrides UxrTrackingDevice.OnDestroy().)
Protected methodSetCalibrationPose Adopts the calibration pose.

Extension Methods

NameDescription
Public Extension MethodCheckSetEnabled Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.)
Public Extension MethodGetOrAddComponent<T> Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.)
Public Extension MethodGetPathUnderScene Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.)
Public Extension MethodGetSceneUid Gets an unique identifier string for the given component. (Defined by ComponentExt.)
Public Extension MethodGetUniqueScenePath Gets an unique path in the scene for the given component. It will include scene name, sibling and component indices to make it unique. (Defined by ComponentExt.)
Public Extension MethodLoopCoroutine Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.)
Public Extension MethodSafeGetComponentInParent<T> Gets the Component of a given type in the GameObject or any of its parents. It also works on prefabs, where regular GetComponentInParent(Type, Boolean) will not work: https://issuetracker.unity3d.com/issues/getcomponentinparent-is-returning-null-when-the-gameobject-is-a-prefab (Defined by ComponentExt.)
Public Extension MethodShowInInspector(Boolean)Overloaded.
Controls whether to show the current object in the inspector. (Defined by ObjectExt.)
Public Extension MethodShowInInspector(Boolean, Boolean)Overloaded.
Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.)
Public Extension MethodThrowIfNull Throws an exception if the object is null. (Defined by ObjectExt.)

See Also

Reference

UltimateXR.Devices Namespace