Develop
Develop
Select your platform

Controller Grab Interactions

Updated: Nov 3, 2025

Design Guidelines: Providing a comfortable hand tracking experience is essential for creating immersive and enjoyable apps. Refer to the Design Guidelines at the bottom of the page to learn about best practices and to minimize risks of user discomfort.

Grab Interactions let you grab and release objects with an external selection mechanism, like a controller’s trigger or buttons. For the hands and controller driven hands version of grab, see Hand Grab Interactions.
Note: For a hands-specific grab interaction, Hand Grab Interaction or Touch Hand Grab Interaction usually work best.

GrabInteractor

A GrabInteractor defines a Rigidbody to use for testing overlap with GrabInteractables. In addition, a target transform is used for scoring multiple overlapping GrabInteractables by distance. A GrabInteractor delegates transform logic updates to a Grabbable.
Optionally, a grab source transform may be provided for overriding the poses used during selection on a Grabbable.
Optionally, an IVelocityCalculator can be provided to forward velocity information from a GrabInteractor to a GrabInteractable upon grab release (in instances of throwing).
It is also possible to enforce a grab or release (selection/unselection) of a GrabInteractable by calling the method ForceSelect/ForceRelease.

GrabInteractable

A GrabInteractable defines a Rigidbody to use for testing overlap with GrabInteractors.

Reference

For reference information about the components used by grabbables, see the following links.

Learn more

Design guidelines

Hands

Core interactions

Did you find this page helpful?