HandGrabInteractable Class
Makes an object grabbable by hands so long as it's within arm's reach.
A HandGrabInteractable indicates the properties about how a hand can HandGrab an object. It specifies the fingers that must perform the grab and the release and generates the events for the Pointable to move the object. Optionally it can reference a list of differently scaled HandGrabPoses to inform the interactor about the best pose the hand should adopt when grabbing the object with different sized hands.
The Unity Rigidbody used for collision detection.
The returned value is from the _rigidbody field, which is set from the Unity Editor.
bool ResetGrabOnGrabsUpdated[Get]
Related to GrabInteractable.ResetGrabOnGrabsUpdated; forces a release on all other grabbing interactors when grabbed by a new interactor.
Implementation of IHandGrabInteractable.Slippiness; for details, please refer to the related documentation provided for that interface.
Implementation of IHandGrabInteractable.HandAlignment; for details, please refer to the related documentation provided for that interface.
Retrieves the list of HandGrabPoses which can be used to grab this interactable.
This returns the value of the _handGrabPoses field, which is typically set from the Unity Editor.
Transform RelativeTo[Get]
Implementation of IRelativeToRef.RelativeTo; for details, please refer to the related documentation provided for that interface.
Returns the PoseMeasureParameters used in the scoring mechanism which selects which of the available hand grab poses should be used for interaction.
GrabTypeFlags SupportedGrabTypes[Get]
Implementation of IHandGrabInteractable.SupportedGrabTypes; for details, please refer to the related documentation provided for that interface.
Implementation of IHandGrabInteractable.PinchGrabRules; for details, please refer to the related documentation provided for that interface.
Implementation of IHandGrabInteractable.PalmGrabRules; for details, please refer to the related documentation provided for that interface.
Collider[] Colliders[Get]
The list of Unity Colliders associated with this interactable.
This list is automatically populated during the MonoBehaviour's start-up process and will contain a reference to every Collider in Rigidbody's hierarchy at that time. This list is not allowed to be empty, meaning there must be at least one Collider in Rigidbody's hierarchy at the time the DistanceHandGrabInteractable first becomes active.
Implementation of IHandGrabInteractable.UsesHandPose; for details, please refer to the related documentation provided for that interface.
IMovement GenerateMovement ( in Pose from,
in Pose to )
Implementation of IHandGrabInteractable.GenerateMovement(in Pose, in Pose); for details, please refer to the related documentation provided for that interface.
void ApplyVelocities ( Vector3 linearVelocity,
Vector3 angularVelocity )
Obsolete: this was used to apply velocities from an Throw.IThrowVelocityCalculator, which is deprecated.
Velocity calculation capabilities are now a feature of Grabbable and should be controlled from there.
bool CalculateBestPose ( Pose userPose,
float handScale,
Handedness handedness,
Implementation of IHandGrabInteractable.CalculateBestPose(Pose, float, Handedness, ref HandGrabResult); for details, please refer to the related documentation provided for that interface.
void CalculateBestPose ( in Pose userPose,
in Pose offset,
Transform relativeTo,
float handScale,
Handedness handedness,
Implementation of IHandGrabInteractable.CalculateBestPose(in Pose, in Pose, Transform, float, Handedness, ref HandGrabResult); for details, please refer to the related documentation provided for that interface.
bool SupportsHandedness ( Handedness handedness )
Implementation of IHandGrabInteractable.SupportsHandedness(Handedness); for details, please refer to the related documentation provided for that interface.
void InjectAllHandGrabInteractable ( GrabTypeFlags supportedGrabTypes,
Convenience method combining InjectSupportedGrabTypes(GrabTypeFlags), InjectRigidbody(Rigidbody), InjectPinchGrabRules(GrabbingRule), and InjectPalmGrabRules(GrabbingRule).
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectSupportedGrabTypes ( GrabTypeFlags supportedGrabTypes )
Adds a GrabTypeFlags as SupportedGrabTypes in a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectPinchGrabRules Adds a GrabbingRule as PinchGrabRules to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Adds a GrabbingRule as PalmGrabRules to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Adds a Unity Rigidbody as Rigidbody to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectOptionalScoreModifier Adds a list of DistanceHandGrabInteractor as HandGrabPoses to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectOptionalPhysicsGrabbable Obsolete: adds a PhysicsGrabbable to a dynamically instantiated GameObject.
This functionality is now provided as part of Grabbable and no longer needs to be handled independently. This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectOptionalHandGrabPoses Adds a list of DistanceHandGrabInteractor as HandGrabPoses to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
void InjectOptionalMovementProvider Adds an IMovementProvider as MovementProvider to a dynamically instantiated DistanceHandGrabInteractable.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.