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

Grabbable Class

The Grabbable class enables interaction with and manipulation of the object it's attached to when an Interactor<TInteractor,TInteractable> selects that object.
This class implements the IGrabbable and ITimeConsumer interfaces and inherits from PointableElement to handle pointer events effectively.
Utilize this class to make any GameObject interactive and responsive to grab-based user interactions. It supports both single-hand and dual-hand interactions, allowing for complex object manipulation.

Fields

GrabPoints : List< Pose >
Lists the current grab points as poses.
These are used to calculate transformations based on user interactions.
Signature
List<Pose> Oculus.Interaction.Grabbable.GrabPoints
Transform : Transform
Provides access to the transform that should be manipulated.
This can be the transform of the GameObject this component is attached to or a different specified transform.
Signature
Transform Oculus.Interaction.Grabbable.Transform

Properties

ForceKinematicDisabled : bool
[Get][Set]
Gets or sets whether to force isKinematic to false during throw physics.
When disabled, respects the original isKinematic setting.
Signature
bool Oculus.Interaction.Grabbable.ForceKinematicDisabled
MaxGrabPoints : int
[Get][Set]
Gets or sets the maximum number of grab points.
This property is crucial for defining how many points can be used to interact with the object.
Signature
int Oculus.Interaction.Grabbable.MaxGrabPoints
VelocityThrow : ThrowWhenUnselected
[Get]
Gets the velocity throw component.
This component is used to apply velocity to the object when it is released. Note that this property is only set during Start and if the ThrowWhenUnselected and Rigidbody fields are set.
Signature
ThrowWhenUnselected Oculus.Interaction.Grabbable.VelocityThrow

Protected Methods

Awake ()
Signature
override void Oculus.Interaction.Grabbable.Awake()
Returns
override void
OnDestroy ()
Signature
virtual void Oculus.Interaction.Grabbable.OnDestroy()
Returns
void
OnDisable ()
Signature
override void Oculus.Interaction.Grabbable.OnDisable()
Returns
override void
PointableElementUpdated ( evt )
Signature
override void Oculus.Interaction.Grabbable.PointableElementUpdated(PointerEvent evt)
Parameters
Returns
override void
Reset ()
Signature
virtual void Oculus.Interaction.Grabbable.Reset()
Returns
void
Start ()
Signature
override void Oculus.Interaction.Grabbable.Start()
Returns
override void

Methods

InjectOptionalKinematicWhileSelected ( kinematicWhileSelected )
Determines whether the Rigidbody should be locked to kinematic mode while the object is selected.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalKinematicWhileSelected(bool kinematicWhileSelected)
Parameters
kinematicWhileSelected: bool  A boolean value indicating whether to lock the Rigidbody to kinematic mode during selection.
Returns
void
InjectOptionalOneGrabTransformer ( transformer )
Injects an optional one-hand transformer component to be used when the object is grabbed with one hand.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalOneGrabTransformer(ITransformer transformer)
Parameters
transformer: ITransformer  The transformer component that defines how the object behaves when grabbed with one hand.
Returns
void
InjectOptionalRigidbody ( rigidbody )
Injects an optional Rigidbody component to be controlled by this Grabbable object.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalRigidbody(Rigidbody rigidbody)
Parameters
rigidbody: Rigidbody  The Rigidbody component to be manipulated during grab interactions.
Returns
void
InjectOptionalTargetTransform ( targetTransform )
Sets an optional target transform to which all transformations will be applied, instead of the object this component is attached to.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalTargetTransform(Transform targetTransform)
Parameters
targetTransform: Transform  The transform component that should receive all transformations.
Returns
void
InjectOptionalThrowWhenUnselected ( throwWehenUnselected )
///
Configures whether the object should simulate throwing physics when unselected based on user interactions.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalThrowWhenUnselected(bool throwWehenUnselected)
Parameters
throwWehenUnselected: bool
Returns
void
InjectOptionalTwoGrabTransformer ( transformer )
Injects an optional two-hand transformer component to be used when the object is grabbed with two hands.
Signature
void Oculus.Interaction.Grabbable.InjectOptionalTwoGrabTransformer(ITransformer transformer)
Parameters
transformer: ITransformer  The transformer component that defines how the object behaves when grabbed with two hands.
Returns
void
ProcessPointerEvent ( evt )
Implementation of IPointableElement.ProcessPointerEvent(PointerEvent); for details, please refer to the related documentation provided for that interface.
Signature
override void Oculus.Interaction.Grabbable.ProcessPointerEvent(PointerEvent evt)
Parameters
Returns
override void
SetTimeProvider ( timeProvider )
Sets a custom time provider function that returns the current time in seconds.
This is essential for synchronizing time-dependent behaviors within the Grabbable object.
Signature
void Oculus.Interaction.Grabbable.SetTimeProvider(Func< float > timeProvider)
Parameters
timeProvider: Func< float >  A function delegate that returns the current time in seconds.
Returns
void