API reference

DistanceHandGrabInteractor Class

DistanceHandGrabInteractor lets you grab interactables at a distance with hands.
It operates with HandGrabPoses to specify the final pose of the hand and manipulate the objects via IMovements in order to attract them, use them at a distance, etc. The DistanceHandGrabInteractor uses DistantCandidateComputer<TInteractor, TInteractable> to detect far-away interactables.

Properties

DistanceInteractable : IRelativeToRef
[Get]
Retrieves the current interactable (null if this interactor isn't interacting with anything) as an IRelativeToRef.
This is primarily used for visualizations.
Signature
IRelativeToRef DistanceInteractable
FingersStrength : float
[Get]
Implementation of IHandGrabState.FingersStrength; for details, please refer to the related documentation provided for that interface.
Signature
float FingersStrength
Hand : IHand
[Get]
Implementation of IHandGrabInteractor.Hand; for details, please refer to the related documentation provided for that interface.
Signature
IHand Hand
HandGrabApi : HandGrabAPI
[Get]
Implementation of IHandGrabInteractor.HandGrabApi; for details, please refer to the related documentation provided for that interface.
Signature
HandGrabAPI HandGrabApi
HandGrabTarget : HandGrabTarget
[Get]
The HandGrabTarget used by this interactor when grabbing.
Signature
HandGrabTarget HandGrabTarget
HitPoint : Vector3
[Get]
The point in space from which the interactor is considered to have "hit" its current interactable.
This is conceptually similar to RayInteractor.CollisionInfo, though the it is not the result of a simple raycast and instead results from calculations in the DistantCandidateComputer<TInteractor, TInteractable>.
Signature
Vector3 HitPoint
IsGrabbing : bool
[Get]
Implementation of IHandGrabState.IsGrabbing; for details, please refer to the related documentation provided for that interface.
Signature
virtual bool IsGrabbing
Movement : IMovement
[Get][Set]
The IMovement generated as a result of interacting with an interactable.
This is created by the interactable's DistanceHandGrabInteractable.MovementProvider.
Signature
IMovement Movement
MovementFinished : bool
[Get][Set]
Indicates whether or not the current Movement has finished.
Signature
bool MovementFinished
Origin : Pose
[Get]
Retrieves the pose (position and orientation) from which distance grabbing is calculated.
This value comes from the DistantCandidateComputer<TInteractor, TInteractable>, but conceptually it is a point relative to the hand around which it feels natural for the hand to grab.
Signature
Pose Origin
PalmPoint : Transform
[Get]
Implementation of IHandGrabInteractor.PalmPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform PalmPoint
PinchPoint : Transform
[Get]
Implementation of IHandGrabInteractor.PinchPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform PinchPoint
SupportedGrabTypes : GrabTypeFlags
[Get]
Implementation of IHandGrabInteractor.SupportedGrabTypes; for details, please refer to the related documentation provided for that interface.
Signature
GrabTypeFlags SupportedGrabTypes
TargetInteractable : IHandGrabInteractable
[Get]
Implementation of IHandGrabInteractor.TargetInteractable; for details, please refer to the related documentation provided for that interface.
Signature
IHandGrabInteractable TargetInteractable
VelocityCalculator : IThrowVelocityCalculator
[Get][Set]
Obsolete: this was used to get and set the interactor's IThrowVelocityCalculator, which is deprecated.
Velocity calculation capabilities are now a feature of Grabbable and should be controlled from there.
Signature
IThrowVelocityCalculator VelocityCalculator
WristPoint : Transform
[Get]
Implementation of IHandGrabInteractor.WristPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform WristPoint
WristStrength : float
[Get]
Implementation of IHandGrabState.WristStrength; for details, please refer to the related documentation provided for that interface.
Signature
float WristStrength
WristToGrabPoseOffset : Pose
[Get]
Implementation of IHandGrabState.WristToGrabPoseOffset; for details, please refer to the related documentation provided for that interface.
Signature
Pose WristToGrabPoseOffset

Protected Methods

Awake ()
Signature
override void Awake()
Returns
override void
ComputeCandidate ()
Signature
override DistanceHandGrabInteractable ComputeCandidate()
Returns
override DistanceHandGrabInteractable
ComputePointerPose ()
Signature
override Pose ComputePointerPose()
Returns
override Pose
ComputeShouldSelect ()
Signature
override bool ComputeShouldSelect()
Returns
override bool
ComputeShouldUnselect ()
Signature
override bool ComputeShouldUnselect()
Returns
override bool
DoHoverUpdate ()
Signature
override void DoHoverUpdate()
Returns
override void
DoSelectUpdate ()
Signature
override void DoSelectUpdate()
Returns
override void
HandlePointerEventRaised ( evt )
Signature
override void HandlePointerEventRaised(PointerEvent evt)
Parameters
Returns
override void
InteractableSelected ( interactable )
Signature
override void InteractableSelected(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableSet ( interactable )
Signature
override void InteractableSet(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableUnselected ( interactable )
Signature
override void InteractableUnselected(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableUnset ( interactable )
Signature
override void InteractableUnset(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
Reset ()
Signature
virtual void Reset()
Returns
void
Start ()
Signature
override void Start()
Returns
override void

Methods

CanSelect ( interactable )
Overrides Interactor<TInteractor, TInteractable>.CanSelect(TInteractable), augmenting the behavior of that base method with an additional call to HandGrabInteraction.CanInteractWith(IHandGrabInteractor, IHandGrabInteractable), which confirms the presence of hand-specific requirements for valid hand interaction.
Signature
override bool CanSelect(DistanceHandGrabInteractable interactable)
Parameters
interactable: DistanceHandGrabInteractable  The interactable
Returns
override bool  True if it is possible for this interactable to select interactable , false otherwise
GrabbingFingers ()
Implementation of IHandGrabState.GrabbingFingers; for details, please refer to the related documentation provided for that interface.
Signature
HandFingerFlags GrabbingFingers()
Returns
HandFingerFlags
InjectAllDistanceHandGrabInteractor ( handGrabApi , distantCandidateComputer , grabOrigin , hand , supportedGrabTypes )
Convenience method combining InjectHandGrabApi(HandGrabAPI), InjectDistantCandidateComputer(DistantCandidateComputer<DistanceHandGrabInteractor, DistanceHandGrabInteractable>), InjectGrabOrigin(Transform), /// InjectHand(IHand), and InjectSupportedGrabTypes(GrabTypeFlags).
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectAllDistanceHandGrabInteractor(HandGrabAPI handGrabApi, DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable > distantCandidateComputer, Transform grabOrigin, IHand hand, GrabTypeFlags supportedGrabTypes)
Parameters
handGrabApi: HandGrabAPI
grabOrigin: Transform
hand: IHand
supportedGrabTypes: GrabTypeFlags
Returns
void
InjectDistantCandidateComputer ( distantCandidateComputer )
Adds a DistantCandidateComputer to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectDistantCandidateComputer(DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable > distantCandidateComputer)
Parameters
Returns
void
InjectGrabOrigin ( grabOrigin )
Adds a grab origin to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectGrabOrigin(Transform grabOrigin)
Parameters
grabOrigin: Transform
Returns
void
InjectHand ( hand )
Adds an IHand to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectHand(IHand hand)
Parameters
hand: IHand
Returns
void
InjectHandGrabApi ( handGrabApi )
Adds a HandGrabAPI to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectHandGrabApi(HandGrabAPI handGrabApi)
Parameters
handGrabApi: HandGrabAPI
Returns
void
InjectOptionalGripPoint ( gripPoint )
Adds a grip point to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectOptionalGripPoint(Transform gripPoint)
Parameters
gripPoint: Transform
Returns
void
InjectOptionalPinchPoint ( pinchPoint )
Adds a pinch point to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectOptionalPinchPoint(Transform pinchPoint)
Parameters
pinchPoint: Transform
Returns
void
InjectOptionalVelocityCalculator ( velocityCalculator )
Obsolete: adds a IThrowVelocityCalculator to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage. Velocity calculation is now a feature of Grabbable and is no longer required by DistanceHandGrabInteractor.
Signature
void InjectOptionalVelocityCalculator(IThrowVelocityCalculator velocityCalculator)
Parameters
velocityCalculator: IThrowVelocityCalculator
Returns
void
InjectSupportedGrabTypes ( supportedGrabTypes )
Adds a list of supported grabs to a dynamically instantiated GameObject.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectSupportedGrabTypes(GrabTypeFlags supportedGrabTypes)
Parameters
supportedGrabTypes: GrabTypeFlags
Returns
void