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.

Fields

DistanceInteractable : IRelativeToRef
Retrieves the current interactable (null if this interactor isn't interacting with anything) as an IRelativeToRef.
This is primarily used for visualizations.
Signature
IRelativeToRef Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.DistanceInteractable
HandGrabApi : HandGrabAPI
Implementation of IHandGrabInteractor.HandGrabApi; for details, please refer to the related documentation provided for that interface.
Signature
HandGrabAPI Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.HandGrabApi
IsGrabbing : bool
Implementation of IHandGrabState.IsGrabbing; for details, please refer to the related documentation provided for that interface.
Signature
virtual bool Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.IsGrabbing
Origin : Pose
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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.Origin
PalmPoint : Transform
Implementation of IHandGrabInteractor.PalmPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.PalmPoint
PinchPoint : Transform
Implementation of IHandGrabInteractor.PinchPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.PinchPoint
SupportedGrabTypes : GrabTypeFlags
Implementation of IHandGrabInteractor.SupportedGrabTypes; for details, please refer to the related documentation provided for that interface.
Signature
GrabTypeFlags Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.SupportedGrabTypes
TargetInteractable : IHandGrabInteractable
Implementation of IHandGrabInteractor.TargetInteractable; for details, please refer to the related documentation provided for that interface.
Signature
IHandGrabInteractable Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.TargetInteractable
WristPoint : Transform
Implementation of IHandGrabInteractor.WristPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.WristPoint

Properties

FingersStrength : float
[Get]
Implementation of IHandGrabState.FingersStrength; for details, please refer to the related documentation provided for that interface.
Signature
float Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.FingersStrength
Hand : IHand
[Get]
Implementation of IHandGrabInteractor.Hand; for details, please refer to the related documentation provided for that interface.
Signature
IHand Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.Hand
HandGrabTarget : HandGrabTarget
[Get]
The HandGrabTarget used by this interactor when grabbing.
Signature
HandGrabTarget Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.HitPoint
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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.Movement
MovementFinished : bool
[Get][Set]
Indicates whether or not the current Movement has finished.
Signature
bool Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.MovementFinished
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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.VelocityCalculator
WristStrength : float
[Get]
Implementation of IHandGrabState.WristStrength; for details, please refer to the related documentation provided for that interface.
Signature
float Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.WristStrength
WristToGrabPoseOffset : Pose
[Get]
Implementation of IHandGrabState.WristToGrabPoseOffset; for details, please refer to the related documentation provided for that interface.
Signature
Pose Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.WristToGrabPoseOffset

Protected Methods

Awake ()
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.Awake()
Returns
override void
ComputeCandidate ()
Signature
override DistanceHandGrabInteractable Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.ComputeCandidate()
ComputePointerPose ()
Signature
override Pose Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.ComputePointerPose()
Returns
override Pose
ComputeShouldSelect ()
Signature
override bool Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.ComputeShouldSelect()
Returns
override bool
ComputeShouldUnselect ()
Signature
override bool Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.ComputeShouldUnselect()
Returns
override bool
DoHoverUpdate ()
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.DoHoverUpdate()
Returns
override void
DoSelectUpdate ()
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.DoSelectUpdate()
Returns
override void
HandlePointerEventRaised ( evt )
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.HandlePointerEventRaised(PointerEvent evt)
Parameters
Returns
override void
InteractableSelected ( interactable )
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InteractableSelected(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableSet ( interactable )
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InteractableSet(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableUnselected ( interactable )
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InteractableUnselected(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
InteractableUnset ( interactable )
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InteractableUnset(DistanceHandGrabInteractable interactable)
Parameters
Returns
override void
Reset ()
Signature
virtual void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.Reset()
Returns
void
Start ()
Signature
override void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.GrabbingFingers()
Returns
HandFingerFlags
InjectAllDistanceHandGrabInteractor ( handGrabApi , distantCandidateComputer , grabOrigin , hand , supportedGrabTypes )
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InjectAllDistanceHandGrabInteractor(HandGrabAPI handGrabApi, DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable > distantCandidateComputer, Transform grabOrigin, IHand hand, GrabTypeFlags supportedGrabTypes)
Parameters
handGrabApi: HandGrabAPI
distantCandidateComputer: DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable >
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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InjectDistantCandidateComputer(DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable > distantCandidateComputer)
Parameters
distantCandidateComputer: DistantCandidateComputer< DistanceHandGrabInteractor, DistanceHandGrabInteractable >
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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.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 Oculus.Interaction.HandGrab.DistanceHandGrabInteractor.InjectSupportedGrabTypes(GrabTypeFlags supportedGrabTypes)
Parameters
supportedGrabTypes: GrabTypeFlags
Returns
void