API reference
API reference
Select your platform
No SDKs available
No versions available

TouchHandGrabInteractor Class

Provides a hand-specific, collisions-based, grab interaction model (distinct from HandGrab.HandGrabInteractor's spatial hueristic approach) where selection begins when finger tips overlap with an associated interactable.
Upon selection, the distance between the fingers and thumb is cached and is used for determining the point of release - when fingers are outside of the cached distance. This interaction mode simulates the physicality of grabbing a real-world object with the fingertips.

Properties

IHand Hand[Get]
IHand OpenHand[Get]

Protected Fields

IHandSphereMap HandSphereMap[Get]
IActiveState GrabPrerequisite[Get]

Events

Event invoked to indicate changes in which fingers are locked by the TouchHandGrabInteractor.
For information about which specific finger's locking state has changed, check IsFingerLocked(HandFinger). During touch interaction, fingers are locked when the tracked finger penetrates the TouchHandGrabInteractable; this locking prevents the visualized finger from clipping overmuch into the interactable's visualization.

Member Functions

Sets the time provider for this sequence, allowing for the default time provider (Unity's built-in Time.time) to be overridden with custom behavior to enable pausing, time dilation, etc.
Parameters
timeProvider
The new time provider to be used by this instance.
Checks whether a finger has been locked by the interaction in order to prevent it from penetrating the TouchHandGrabInteractable.
Parameters
finger
The finger to check for locking.
Returns
True if finger is locked, false otherwise.
Retrieves positional data for the requested finger 's joints.
This is useful for rendering a finger visualization based on the "locked" non-penetrating finger position.
Parameters
finger
The finger for which to retrieve positional data.
Returns
The Poses of the joints of the requested finger .
Overrides IInteractor.Unselect; this is core Interaction SDK logic and should not be invoked directly outside of core functionality.
For more information, see the relevant remarks on IInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets an IHand as the hand for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets an IHand as the "open hand" for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets an IHandSphereMap as the hand sphere map for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets a Transform as the hover location for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets a Transform as the grab location for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Sets an IActiveState as a grab prerequisite for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Programmatically sets the min hover distance for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Programmatically sets the curl delta threshold for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Programmatically sets the curl time threshold for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Programmatically sets the iteratiosn for a dynamically instantiated TouchHandGrabInteractor.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectOptionalTimeProvider
( Func< float > timeProvider )

Protected Functions

override void Awake ( )
override void Start ( )
override void DoPreprocess ( )
override void DoPostprocess ( )
override bool ComputeShouldSelect ( )
override bool ComputeShouldUnselect ( )
override void DoHoverUpdate ( )
override void DoSelectUpdate ( )
override TouchHandGrabInteractable ComputeCandidate ( )
virtual override Pose ComputePointerPose ( )
Did you find this page helpful?
Thumbs up icon
Thumbs down icon