IsdkGrabber and an IsdkGrabbableComponent. The IsdkGrabber is attached to the hand or controller and the IsdkGrabbableComponent component is located on the object you want the user to be able to grab or manipulate. When a IsdkGrabber interacts with a IsdkGrabbableComponent, a Pointer Event is generated with information about the interaction.IsdkGrabber component detects the best IsdkGrabbableComponent candidate and initiates the grab interaction. There is an IsdkGrabber component in each of the Interaction SDK rig components: IsdkHandRigComponentLeft, IsdkHandRigComponentRight, IsdkControllerRigComponentLeft, and IsdkControllerRigComponentRight.IsdkGrabbableComponent specifies that the object can be grabbed. The IsdkGrabTransformer indicates how an object can move with the interactor, and which fingers should start and end the grab. A grabbable object can be composed of multiple IsdkGrabbableComponent components.IsdkGrabber has detector components for the various ways a user can grab an object: normal hand grab, grab from a distance, and grab based on a ray intersection. On the IsdkGrabbableComponent, the Allowed Grab Detector Types determines which of these detector types the user can use to grab the object. The available grab detector types are:| Grab Detector Type | Description |
|---|---|
Hand Grab | The object can be interacted with by the user up close. |
Distance Grab | The object can be interacted with by the user from a distance by casting a cone out from the hand or controller. |
Ray Grab | The object can be interacted with by the user from a distance by casting a ray out from the hand or controller. |

IsdkGrabbableComponent, the Allowed Input Methods determines what poses the user can use to grab the object. The available input methods are:| Input Method | Description |
|---|---|
None | |
Pinch | The object can be grabbed by pinching the index finger and thumb together, holding it between them. |
Palm | The object can be grabbed by closing one or more fingers around the object, holding it in the palm. |
IsdkGrabTransformer component. This component contains properties for configuring how distance grab interactions behave, whether to allow only a single interaction at any one time or if multiple interactions are allowed, how to constarin the object when it is moved during an interaction, and whether the object can be thrown and how it behaves when thrown.IsdkGrabTransformer, the Distance Grab Motion determines the reference frame for transforming the grabbed object. The available grab types are:| Grab Motion | Description |
|---|---|
None | Uses your hand as the pivot point when moving the grabbed object. |
Pull To Hand | The object will move to the hand when grabbed and then behave the same as an object that was grabbed up close. Various options are available to customize this motion. |
Manipulate In Place | The object will stay in its current location when grabbed and will move relative to your hand motion. |
Relative To Pointer | The object will move using your hand or controller pointer pose as a pivot point. |
IsdkGrabTransformer, the Multi Grab Behavior determines whether the object can have only a single grab point from a single interactor or multiple grab points from multiple interactors. The available grab types are:| Grab Behavior | Description |
|---|---|
Single Grab First Retained | Enforces a single grab interaction and keeps the current one active until it is canceled. |
Single Grab Transfer to Second | Enforces a single grab interaction but allows a new interaction to take over if one is already active. |
Multi Grab | Alows multiple interactions to be active simultaneously. |
IsdkGrabTransformer using the Single Grab Transformer and Multi Grab Transformer properties. Single grab transformers are used in situations where only a single grab interactor is interacting with the object, such as picking up and object and moving it around. Multi grab transformers are used when more than one grab interactor is interacting with the object, such as using both hands to rotate or scale an object.Isdk Grab Free Transformer enables translation, rotation, and scaling of the object in one or more axes and uses an Isdk Grab Free Transformer Config assigned to its Config property to specify its constraints. The Rotate, Translate, and Scale sections in config’s properties are used to enable movement along the axes and apply constraints.Isdk One Grab Rotate Transformer enables rotation of the object along a single axis and uses a One Grab Rotation Constraint assigned to its Constraint property to specify constraints. The Rotation Axis in the One Grab Rotation Constraint structs’s properties determines which axis the object can rotate around. The available options are:| Option | Description |
|---|---|
None | No rotation is allowed on the Grabbable. |
X | Grabbable can only rotate along the X axis, limited by the optional constraint. |
Y | Grabbable can only rotate along the Y axis, limited by the optional constraint. |
Z | Grabbable can only rotate along the Z axis, limited by the optional constraint. |
IsdkGrabber angle measured from the axis at time of select compared to the current IsdkGrabber angle measured from the axis.Isdk One Grab Translate Transformer enables translation of the object along each axis and uses a Isdk Constraint Axes assigned to its Position Constraint property to specify constraints.IsdkGrabbableComponent component or by adding an IsdkThrowable component. When using the IsdkThrowable component, you must set the TrackedComponent to point to the IsdkGrabbableComponent component on the object.IsdkGrabbableAudio component, you can add audio that automatically plays in response to certain aspects of the grab interaction, such as grabbing, releasing, and scaling a held object.IsdkGrabbableAudio component automatically uses the first IsdkGrabbable component on the Actor to get the grab events to play sounds for. You can also set the IsdkGrabbable to use by assigning it to the ScalingInteractable property of the IsdkGrabbableAudio component.