HandGrabApi
: HandGrabAPI |
Implementation of IHandGrabInteractor.HandGrabApi; for details, please refer to the related documentation provided for that interface.
Signature
HandGrabAPI Oculus.Interaction.HandGrab.HandGrabInteractor.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.HandGrabInteractor.IsGrabbing |
PalmPoint
: Transform |
Implementation of IHandGrabInteractor.PalmPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.PalmPoint |
PinchPoint
: Transform |
Implementation of IHandGrabInteractor.PinchPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.PinchPoint |
Rigidbody
: Rigidbody |
Implementation of IRigidbodyRef.Rigidbody; for details, please refer to the related documentation provided for that interface.
Signature
Rigidbody Oculus.Interaction.HandGrab.HandGrabInteractor.Rigidbody |
SupportedGrabTypes
: GrabTypeFlags |
Implementation of IHandGrabInteractor.SupportedGrabTypes; for details, please refer to the related documentation provided for that interface.
Signature
GrabTypeFlags Oculus.Interaction.HandGrab.HandGrabInteractor.SupportedGrabTypes |
TargetInteractable
: IHandGrabInteractable |
Implementation of IHandGrabInteractor.TargetInteractable; for details, please refer to the related documentation provided for that interface.
Signature
IHandGrabInteractable Oculus.Interaction.HandGrab.HandGrabInteractor.TargetInteractable |
WristPoint
: Transform |
Implementation of IHandGrabInteractor.WristPoint; for details, please refer to the related documentation provided for that interface.
Signature
Transform Oculus.Interaction.HandGrab.HandGrabInteractor.WristPoint |
FingersStrength
: float
[Get] |
Implementation of IHandGrabState.FingersStrength; for details, please refer to the related documentation provided for that interface.
Signature
float Oculus.Interaction.HandGrab.HandGrabInteractor.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.HandGrabInteractor.Hand |
HandGrabTarget
: HandGrabTarget
[Get] |
The HandGrab.HandGrabTarget used by this interactor when grabbing.
Signature
HandGrabTarget Oculus.Interaction.HandGrab.HandGrabInteractor.HandGrabTarget |
HoverOnZeroStrength
: bool
[Get][Set] |
When enabled, nearby HandGrabInteractables can become candidates even if the finger strength is 0.
"Strength" in this context is a measure of of how similar/different the finger's state is to what the system considers "grabbing"; for a more detailed overview, see the documentation for IHand.GetFingerPinchStrength(HandFinger).
Signature
bool Oculus.Interaction.HandGrab.HandGrabInteractor.HoverOnZeroStrength |
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.HandGrabInteractor.Movement |
MovementFinished
: bool
[Get][Set] |
Indicates whether or not the current Movement has finished.
Signature
bool Oculus.Interaction.HandGrab.HandGrabInteractor.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.HandGrabInteractor.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.HandGrabInteractor.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.HandGrabInteractor.WristToGrabPoseOffset |
Awake
()
|
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Awake() Returns override void |
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.
Signature
override HandGrabInteractable Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeCandidate() |
ComputePointerPose
()
|
Signature
override Pose Oculus.Interaction.HandGrab.HandGrabInteractor.ComputePointerPose() Returns override Pose |
ComputeShouldSelect
()
|
Signature
override bool Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeShouldSelect() Returns override bool |
ComputeShouldUnselect
()
|
Signature
override bool Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeShouldUnselect() Returns override bool |
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.
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.DoHoverUpdate() Returns override void |
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.
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.DoSelectUpdate() Returns override void |
HandlePointerEventRaised
(
evt
)
|
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.HandlePointerEventRaised(PointerEvent evt) Parameters evt: PointerEventReturns override void |
InteractableSelected
(
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.
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableSelected(HandGrabInteractable interactable) Parameters Returns override void |
InteractableSet
(
interactable
)
|
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableSet(HandGrabInteractable interactable) Parameters interactable: HandGrabInteractableReturns override void |
InteractableUnselected
(
interactable
)
|
When releasing an active interactable, calculate the releasing point in similar fashion to InteractableSelected.
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableUnselected(HandGrabInteractable interactable) Parameters Returns override void |
InteractableUnset
(
interactable
)
|
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.InteractableUnset(HandGrabInteractable interactable) Parameters interactable: HandGrabInteractableReturns override void |
Reset
()
|
Signature
virtual void Oculus.Interaction.HandGrab.HandGrabInteractor.Reset() Returns void |
Start
()
|
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Start() Returns override void |
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.HandGrabInteractor.CanSelect(HandGrabInteractable interactable) Parameters Returns override bool
True if it is possible for this interactable to select interactable , false otherwise
|
ForceRelease
()
|
Forces the interactor to deselect the currently grabbed HandGrabInteractable (if any).
Signature
void Oculus.Interaction.HandGrab.HandGrabInteractor.ForceRelease() Returns void |
ForceSelect
(
interactable
, allowManualRelease
)
|
Forces the interactor to select the passed HandGrabInteractable, which will be grabbed in the next interaction iteration.
Signature
void Oculus.Interaction.HandGrab.HandGrabInteractor.ForceSelect(HandGrabInteractable interactable, bool allowManualRelease=false) Parameters allowManualRelease: bool
If false, the interactable can only be released by calling ForceRelease.
Returns void |
GrabbingFingers
()
|
Implementation of IHandGrabState.GrabbingFingers; for details, please refer to the related documentation provided for that interface.
Signature
HandFingerFlags Oculus.Interaction.HandGrab.HandGrabInteractor.GrabbingFingers() Returns HandFingerFlags |
InjectAllHandGrabInteractor
(
handGrabApi
, grabOrigin
, hand
, rigidbody
, 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 Oculus.Interaction.HandGrab.HandGrabInteractor.InjectAllHandGrabInteractor(HandGrabAPI handGrabApi, Transform grabOrigin, IHand hand, Rigidbody rigidbody, GrabTypeFlags supportedGrabTypes) Parameters handGrabApi: HandGrabAPIgrabOrigin: Transformhand: IHandrigidbody: RigidbodysupportedGrabTypes: GrabTypeFlagsReturns 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.HandGrabInteractor.InjectGrabOrigin(Transform grabOrigin) Parameters grabOrigin: TransformReturns 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.HandGrabInteractor.InjectHand(IHand hand) Parameters hand: IHandReturns 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.HandGrabInteractor.InjectHandGrabApi(HandGrabAPI handGrabAPI) Parameters handGrabAPI: HandGrabAPIReturns void |
InjectOptionalGripCollider
(
gripCollider
)
|
Adds a grip collider 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.HandGrabInteractor.InjectOptionalGripCollider(Collider gripCollider) Parameters gripCollider: ColliderReturns 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.HandGrabInteractor.InjectOptionalGripPoint(Transform gripPoint) Parameters gripPoint: TransformReturns void |
InjectOptionalPinchCollider
(
pinchCollider
)
|
Adds a pinch collider 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.HandGrabInteractor.InjectOptionalPinchCollider(Collider pinchCollider) Parameters pinchCollider: ColliderReturns 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.HandGrabInteractor.InjectOptionalPinchPoint(Transform pinchPoint) Parameters pinchPoint: TransformReturns 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 HandGrabInteractor.
Signature
void Oculus.Interaction.HandGrab.HandGrabInteractor.InjectOptionalVelocityCalculator(IThrowVelocityCalculator velocityCalculator) Parameters velocityCalculator: IThrowVelocityCalculatorReturns void |
InjectRigidbody
(
rigidbody
)
|
Adds a Unity Rigidbody 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.HandGrabInteractor.InjectRigidbody(Rigidbody rigidbody) Parameters rigidbody: RigidbodyReturns 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.HandGrabInteractor.InjectSupportedGrabTypes(GrabTypeFlags supportedGrabTypes) Parameters supportedGrabTypes: GrabTypeFlagsReturns void |
SetComputeCandidateOverride
(
computeCandidate
, shouldClearOverrideOnSelect
)
|
Overrides the interactor's ComputeCandidate() method with a new method.
This method itself is an override Interactor<TInteractor, TInteractable>.SetComputeCandidateOverride(Func<TInteractable>, bool), encapsulating the base behavior.
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.SetComputeCandidateOverride(Func< HandGrabInteractable > computeCandidate, bool shouldClearOverrideOnSelect=true) Parameters computeCandidate: Func< HandGrabInteractable >
The method used instead of the interactable's existing ComputeCandidate() method.
shouldClearOverrideOnSelect: bool
If true, clear the computeCandidate function once you select an interactable.
Returns override void |
Unselect
()
|
Overrides Interactor<TInteractor, TInteractable>.Unselect, augmenting the base behavior to ensure correct handling of overrides set with Interactor<TInteractor, TInteractable>.SetComputeShouldUnselectOverride(Func<bool>, bool).
Signature
override void Oculus.Interaction.HandGrab.HandGrabInteractor.Unselect() Returns override void |