DistanceGrabInteractable Class
The DistanceGrabInteractable class allows an object to be grabbed from a distance.
It leverages a configurable IMovementProvider to control how the grab interactable aligns with the DistanceGrabInteractor when selected. This functionality facilitates the grabbing and manipulation of objects remotely.
A reference to an IPointableElement must be set in the Unity Inspector. The IPointableElement serves as a target for PointerEvents, which are generated by the DistanceGrabInteractor. These events are needed to trigger the distance grab interaction.
Collider[] Colliders[Get]
The colliders associated with this interactable, used for interaction detection.
These colliders define the physical boundaries of the interactable object, allowing it to be detected and interacted with by the DistanceGrabInteractor.
The
Rigidbody component of the interactable object.
The rigidbody defines the physical behavior of the interactable, such as its movement and collision responses.
bool ResetGrabOnGrabsUpdated[Get]
Forces a release on all other grabbing interactors when grabbed by a new interactor.
This feature ensures that the object is only held by one interactor at a time, preventing multiple controllers or hands from interacting with the same object simultaneously.
Transform RelativeTo[Get]
Gets the
Transform that acts as the reference point for the interactable.
This property returns the transform that defines the origin or "relative to" point for the interactable's movement and positioning.
Moves the interactable to the provided position.
ParameterstoThe target Pose to which the interactable will be moved.
ReturnsAn instance of IMovement that defines how the interactable should move to the target position.
void ApplyVelocities ( Vector3 linearVelocity,
Vector3 angularVelocity )
Applies velocities to the interactable's PhysicsGrabbable component, if one is present.
This method allows the interactable to be thrown or moved with a specified angular and linear velocity after being released. This method is marked as obsolete and should no longer be used. Use Grabbable instead.
void InjectAllGrabInteractable Injects a
Rigidbody component into a dynamically instantiated GameObject, allowing for physics-based interactions.
This method is a wrapper that calls InjectRigidbody internally.
ParametersrigidbodyThe Rigidbody component to be assigned.
Directly assigns a
Rigidbody to the private field of a dynamically instantiated GameObject.
ParametersrigidbodyThe Rigidbody component to be assigned.
void InjectOptionalGrabSource ( Transform grabSource )
Adds a grab source to a dynamically instantiated GameObject, defining the point of interaction for grabbing.
ParametersgrabSourceThe Transform that represents the grab source.
void InjectOptionalPhysicsGrabbable Adds a PhysicsGrabbable to a dynamically instantiated GameObject.
This method is marked as obsolete and should no longer be used. Use Grabbable instead.
ParametersphysicsGrabbableThe PhysicsGrabbable component to add.
void InjectOptionalMovementProvider Adds a IMovementProvider to a dynamically instantiated GameObject, allowing you to add custom movement logic.
ParametersproviderThe movement provider to inject, which controls the movement logic.