docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRHandSubsystemProvider

    Methods to implement by the implementing provider for an XRHandSubsystem.

    Inheritance
    object
    SubsystemProvider
    SubsystemProvider<XRHandSubsystem>
    XRHandSubsystemProvider
    OpenXRHandProvider
    Inherited Members
    SubsystemProvider<XRHandSubsystem>.TryInitialize()
    SubsystemProvider<XRHandSubsystem>.Start()
    SubsystemProvider<XRHandSubsystem>.Stop()
    SubsystemProvider<XRHandSubsystem>.Destroy()
    SubsystemProvider.running
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEngine.XR.Hands.ProviderImplementation
    Assembly: Unity.XR.Hands.dll
    Syntax
    public abstract class XRHandSubsystemProvider : SubsystemProvider<XRHandSubsystem>

    Methods

    GetFingerShapeConfiguration(XRHandFingerID)

    Gets the XRFingerShapeConfiguration on the current device for the given XRHandFingerID.

    Declaration
    public virtual XRFingerShapeConfiguration GetFingerShapeConfiguration(XRHandFingerID fingerID)
    Parameters
    Type Name Description
    XRHandFingerID fingerID

    Which finger to get the XRFingerShapeConfiguration for.

    Returns
    Type Description
    XRFingerShapeConfiguration

    A populated XRFingerShapeConfiguration representing range of motion for the given XRHandFingerID.

    Remarks

    Called once for each finger on creation so that the subsystem will always have valid configurations to base detection math off of. If the provider does not override this, defaults will be reported - this means that if the device is more constrained in reporting joint data than the defaults, gestures and poses may not be detected correctly. Called after GetHandLayout(NativeArray<bool>) for each finger, but before the subsystem is returned during a call to XRHandSubsystemDescriptor.Create.

    GetHandLayout(NativeArray<bool>)

    Gets the layout of hand joints for this provider, by having the provider mark each index corresponding to a XRHandJointID get marked as true if the provider attempts to track that joint.

    Declaration
    public abstract void GetHandLayout(NativeArray<bool> handJointsInLayout)
    Parameters
    Type Name Description
    NativeArray<bool> handJointsInLayout

    Each index corresponds to a XRHandJointID. For each joint that the provider will attempt to track, mark that spot as true by calling .ToIndex() on that ID.

    Remarks

    Called once on creation so that before the subsystem is even started, the user can immediately create a valid hierarchical structure as soon as they get a reference to the subsystem without even needing to start it. This is called before any call to GetFingerShapeConfiguration(XRHandFingerID).

    TryUpdateHands(UpdateType, ref Pose, NativeArray<XRHandJoint>, ref Pose, NativeArray<XRHandJoint>)

    Attempts to retrieve current hand-tracking data from the provider.

    Declaration
    public abstract XRHandSubsystem.UpdateSuccessFlags TryUpdateHands(XRHandSubsystem.UpdateType updateType, ref Pose leftHandRootPose, NativeArray<XRHandJoint> leftHandJoints, ref Pose rightHandRootPose, NativeArray<XRHandJoint> rightHandJoints)
    Parameters
    Type Name Description
    XRHandSubsystem.UpdateType updateType

    Informs the provider which kind of timing the update is being requested under.

    Pose leftHandRootPose

    Update this and include XRHandSubsystem.UpdateSuccessFlags.LeftHandRootPose in the return value to update the left hand's root pose.

    NativeArray<XRHandJoint> leftHandJoints

    Array of hand joints to fill out for the left hand. These are initialized with a copy of the current joint data for the left hand, so if the last known tracking data for a particular joint is still fine, you don't need to fill out that data again. If you update these, include XRHandSubsystem.UpdateSuccessFlags.LeftHandJoints in the return value to have the changes reflected in the subsystem.

    Pose rightHandRootPose

    Update this and include XRHandSubsystem.UpdateSuccessFlags.RightHandRootPose in the return value to update the right hand's root pose.

    NativeArray<XRHandJoint> rightHandJoints

    Array of hand joints to fill out for the right hand. These are initialized with a copy of the current joint data for the right hand, so if the last known tracking data for a particular joint is still fine, you don't need to fill out that data again. If you update these, include XRHandSubsystem.UpdateSuccessFlags.RightHandJoints in the return value to have the changes reflected in the subsystem.

    Returns
    Type Description
    XRHandSubsystem.UpdateSuccessFlags

    Returns XRHandSubsystem.UpdateSuccessFlags to describe which tracking data was successfully updated.

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)