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

HandGrabInteractor Class

Enables hand grab for objects within arm's reach that have a <cref="GrabInteractable" />.
Oculus::Interaction::HandGrab::HandGrabInteractor extends Oculus.Interaction.PointerInteractor< HandGrabInteractor, HandGrabInteractable >.
Oculus::Interaction::HandGrab::HandGrabInteractor extends Oculus.Interaction.HandGrab.IHandGrabInteractor.
Oculus::Interaction::HandGrab::HandGrabInteractor extends Oculus.Interaction.IRigidbodyRef.

Overview

Public Member Functions

HandFingerFlags
Returns the fingers that are grabbing the interactable.
override bool
void
ForceSelect
( HandGrabInteractable interactable,
bool allowManualRelease )
Forces the interactor to select the passed interactable, which will be grabbed in the next interaction iteration.
void
Forces the interactor to deselect the currently grabbed interactable (if any).
override void
SetComputeCandidateOverride
( Func< HandGrabInteractable > computeCandidate,
bool shouldClearOverrideOnSelect )
override void
void
InjectAllHandGrabInteractor
( HandGrabAPI handGrabApi,
Transform grabOrigin,
IHand hand,
Rigidbody rigidbody,
GrabTypeFlags supportedGrabTypes )
Adds everything contained in <cref="HandGrabInteractor"/> to a dynamically instantiated GameObject.
void
Adds a <cref="HandGrabAPI" /> to a dynamically instantiated GameObject.
void
InjectHand
( IHand hand )
Adds a <cref="IHand" /> to a dynamically instantiated GameObject.
void
InjectRigidbody
( Rigidbody rigidbody )
Adds a Rigidbody to a dynamically instantiated GameObject.
void
InjectSupportedGrabTypes
( GrabTypeFlags supportedGrabTypes )
Adds a list of <cref="GrabTypeFlags" /> to a dynamically instantiated GameObject.
void
InjectGrabOrigin
( Transform grabOrigin )
Adds a grab origin to a dynamically instantiated GameObject.
void
InjectOptionalGripPoint
( Transform gripPoint )
Adds a grip point to a dynamically instantiated GameObject.
void
InjectOptionalGripCollider
( SphereCollider gripCollider )
Adds a grip collider to a dynamically instantiated GameObject.
void
InjectOptionalPinchPoint
( Transform pinchPoint )
Adds a pinch point to a dynamically instantiated GameObject.
void
InjectOptionalPinchCollider
( SphereCollider pinchCollider )
Adds a pinch collider to a dynamically instantiated GameObject.
void
Adds a velocity calculator to a dynamically instantiated GameObject.

Object Data

void
Reset ( )
override void
Awake ( )
override void
Start ( )
override void
Each call while the interactor is hovering, it checks whether there is an interaction being hovered and sets the target snap pose to it.
override void
override void
override void
Each call while the hand is selecting/grabbing an interactable, it moves the item to the new position while also attracting it towards the hand if the snapping mode requires it.
override void
When a new interactable is selected, start the grab at the ideal point.
override void
When releasing an active interactable, calculate the releasing point in similar fashion to InteractableSelected.
override void
override Pose
override bool
override bool
Compute the best interactable to snap to.

Details

Detailed Description

When grabbing an object, the hands visually snap to any <cref="HandPose" /> you've provided. To enable grab for controllers, use GrabInteractor.

Properties

IHand Oculus.Interaction.HandGrab.HandGrabInteractor.Hand
No description available.
bool Oculus.Interaction.HandGrab.HandGrabInteractor.HoverOnZeroStrength
No description available.
IThrowVelocityCalculator Oculus.Interaction.HandGrab.HandGrabInteractor.VelocityCalculator
No description available.
IMovement Oculus.Interaction.HandGrab.HandGrabInteractor.Movement
No description available.
bool Oculus.Interaction.HandGrab.HandGrabInteractor.MovementFinished
No description available.
HandGrabTarget Oculus.Interaction.HandGrab.HandGrabInteractor.HandGrabTarget
No description available.
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.WristPoint
No description available.
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.PinchPoint
No description available.
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.PalmPoint
No description available.
HandGrabAPI Oculus.Interaction.HandGrab.HandGrabInteractor.HandGrabApi
No description available.
GrabTypeFlags Oculus.Interaction.HandGrab.HandGrabInteractor.SupportedGrabTypes
No description available.
IHandGrabInteractable Oculus.Interaction.HandGrab.HandGrabInteractor.TargetInteractable
No description available.
virtual bool Oculus.Interaction.HandGrab.HandGrabInteractor.IsGrabbing
No description available.
float Oculus.Interaction.HandGrab.HandGrabInteractor.FingersStrength
No description available.
float Oculus.Interaction.HandGrab.HandGrabInteractor.WristStrength
No description available.
Pose Oculus.Interaction.HandGrab.HandGrabInteractor.WristToGrabPoseOffset
No description available.
Rigidbody Oculus.Interaction.HandGrab.HandGrabInteractor.Rigidbody
No description available.

Member Functions

HandFingerFlags Oculus.Interaction.HandGrab.HandGrabInteractor.GrabbingFingers ( )
Returns the fingers that are grabbing the interactable.
override bool Oculus.Interaction.HandGrab.HandGrabInteractor.CanSelect
( HandGrabInteractable interactable )
No description available.
void Oculus.Interaction.HandGrab.HandGrabInteractor.ForceSelect
( HandGrabInteractable interactable,
bool allowManualRelease )
Forces the interactor to select the passed interactable, which will be grabbed in the next interaction iteration.
Parameters
interactable
The interactable to grab.
allowManualRelease
If false, the interactable can only be released by calling ForceRelease.
void Oculus.Interaction.HandGrab.HandGrabInteractor.ForceRelease ( )
Forces the interactor to deselect the currently grabbed interactable (if any).
override void Oculus.Interaction.HandGrab.HandGrabInteractor.SetComputeCandidateOverride
( Func< HandGrabInteractable > computeCandidate,
bool shouldClearOverrideOnSelect )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Unselect ( )
No description available.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectAllHandGrabInteractor
( HandGrabAPI handGrabApi,
Transform grabOrigin,
IHand hand,
Rigidbody rigidbody,
GrabTypeFlags supportedGrabTypes )
Adds everything contained in <cref="HandGrabInteractor"/> to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectHandGrabApi
( HandGrabAPI handGrabAPI )
Adds a <cref="HandGrabAPI" /> to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectHand
( IHand hand )
Adds a <cref="IHand" /> to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectRigidbody
( Rigidbody rigidbody )
Adds a Rigidbody to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectSupportedGrabTypes
( GrabTypeFlags supportedGrabTypes )
Adds a list of <cref="GrabTypeFlags" /> to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectGrabOrigin
( Transform grabOrigin )
Adds a grab origin to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalGripPoint
( Transform gripPoint )
Adds a grip point to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalGripCollider
( SphereCollider gripCollider )
Adds a grip collider to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalPinchPoint
( Transform pinchPoint )
Adds a pinch point to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalPinchCollider
( SphereCollider pinchCollider )
Adds a pinch collider to a dynamically instantiated GameObject.
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalVelocityCalculator
( IThrowVelocityCalculator velocityCalculator )
Adds a velocity calculator to a dynamically instantiated GameObject.

Object Data

virtual void Oculus.Interaction.HandGrab.HandGrabInteractor.Reset ( )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Awake ( )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Start ( )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.DoHoverUpdate ( )
Each call while the interactor is hovering, it checks whether there is an interaction being hovered and sets the target snap pose to it.
In the HandToObject snapping behaviors this is relevant as the hand can approach the object progressively even before a true grab starts.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableSet
( HandGrabInteractable interactable )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableUnset
( HandGrabInteractable interactable )
No description available.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.DoSelectUpdate ( )
Each call while the hand is selecting/grabbing an interactable, it moves the item to the new position while also attracting it towards the hand if the snapping mode requires it.
In some cases the parameter can be null, for example if the selection was interrupted by another hand grabbing the object. In those cases it will come out of the release state once the grabbing gesture properly finishes.
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableSelected
( HandGrabInteractable interactable )
When a new interactable is selected, start the grab at the ideal point.
When snapping is involved that can be a point in the interactable offset from the hand which will be stored to progressively reduced it in the next updates, effectively attracting the object towards the hand. When no snapping is involved the point will be the grip point of the hand directly. Note: ideally this code would be in InteractableSelected but it needs to be called before the object is marked as active.
Parameters
interactable
The selected interactable
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableUnselected
( HandGrabInteractable interactable )
When releasing an active interactable, calculate the releasing point in similar fashion to InteractableSelected.
Parameters
interactable
The released interactable
override void Oculus.Interaction.HandGrab.HandGrabInteractor.HandlePointerEventRaised
( PointerEvent evt )
No description available.
override Pose Oculus.Interaction.HandGrab.HandGrabInteractor.ComputePointerPose ( )
No description available.
override bool Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeShouldSelect ( )
No description available.
override bool Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeShouldUnselect ( )
No description available.
override HandGrabInteractable Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeCandidate ( )
Compute the best interactable to snap to.
In order to do it the method measures the score from the current grip pose to the closes pose in the surfaces of each one of the interactables in the registry. Even though it returns the best interactable, it also saves the entire Snap pose to it in which the exact pose within the surface is already recorded to avoid recalculations within the same frame.
Returns
The best interactable to snap the hand to.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon