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

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.

Fields

Colliders : Collider []
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.
Signature
Collider [] Oculus.Interaction.DistanceGrabInteractable.Colliders
RelativeTo : Transform
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.
Signature
Transform Oculus.Interaction.DistanceGrabInteractable.RelativeTo
Rigidbody : Rigidbody
The Rigidbody component of the interactable object.
The rigidbody defines the physical behavior of the interactable, such as its movement and collision responses.
Signature
Rigidbody Oculus.Interaction.DistanceGrabInteractable.Rigidbody

Properties

ResetGrabOnGrabsUpdated : bool
[Get][Set]
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.
Signature
bool Oculus.Interaction.DistanceGrabInteractable.ResetGrabOnGrabsUpdated

Protected Methods

Awake ()
Signature
override void Oculus.Interaction.DistanceGrabInteractable.Awake()
Returns
override void
Reset ()
Signature
virtual void Oculus.Interaction.DistanceGrabInteractable.Reset()
Returns
void
Start ()
Signature
override void Oculus.Interaction.DistanceGrabInteractable.Start()
Returns
override void

Methods

ApplyVelocities ( linearVelocity , 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.
Signature
void Oculus.Interaction.DistanceGrabInteractable.ApplyVelocities(Vector3 linearVelocity, Vector3 angularVelocity)
Parameters
linearVelocity: Vector3
angularVelocity: Vector3
Returns
void
GenerateMovement ( to )
Moves the interactable to the provided position.
Signature
IMovement Oculus.Interaction.DistanceGrabInteractable.GenerateMovement(in Pose to)
Parameters
to: in Pose  The target Pose to which the interactable will be moved.
Returns
IMovement  An instance of IMovement that defines how the interactable should move to the target position.
InjectAllGrabInteractable ( rigidbody )
Injects a Rigidbody component into a dynamically instantiated GameObject, allowing for physics-based interactions.
This method is a wrapper that calls InjectRigidbody internally.
Signature
void Oculus.Interaction.DistanceGrabInteractable.InjectAllGrabInteractable(Rigidbody rigidbody)
Parameters
rigidbody: Rigidbody  The Rigidbody component to be assigned.
Returns
void
InjectOptionalGrabSource ( grabSource )
Adds a grab source to a dynamically instantiated GameObject, defining the point of interaction for grabbing.
Signature
void Oculus.Interaction.DistanceGrabInteractable.InjectOptionalGrabSource(Transform grabSource)
Parameters
grabSource: Transform  The Transform that represents the grab source.
Returns
void
InjectOptionalMovementProvider ( provider )
Adds a IMovementProvider to a dynamically instantiated GameObject, allowing you to add custom movement logic.
Signature
void Oculus.Interaction.DistanceGrabInteractable.InjectOptionalMovementProvider(IMovementProvider provider)
Parameters
provider: IMovementProvider  The movement provider to inject, which controls the movement logic.
Returns
void
InjectOptionalPhysicsGrabbable ( physicsGrabbable )
Adds a PhysicsGrabbable to a dynamically instantiated GameObject.
This method is marked as obsolete and should no longer be used. Use Grabbable instead.
Signature
void Oculus.Interaction.DistanceGrabInteractable.InjectOptionalPhysicsGrabbable(PhysicsGrabbable physicsGrabbable)
Parameters
physicsGrabbable: PhysicsGrabbable  The PhysicsGrabbable component to add.
Returns
void
InjectRigidbody ( rigidbody )
Directly assigns a Rigidbody to the private field of a dynamically instantiated GameObject.
Signature
void Oculus.Interaction.DistanceGrabInteractable.InjectRigidbody(Rigidbody rigidbody)
Parameters
rigidbody: Rigidbody  The Rigidbody component to be assigned.
Returns
void