HandGrabInteractor: Near-field grab for hand tracking. Selects objects through rigidbody overlap with per-finger detection and supports authored HandGrabPose assets for precise finger placement. Grab types include Pinch, Palm, or All (default: All).DistanceHandGrabInteractor: Far-field grab for hand tracking. Selects objects through conical frustums and supports authored HandGrabPose assets with per-finger rules. Grab types include Pinch, Palm, or All (default: Pinch).TouchHandGrabInteractor: An experimental near-field alternative for hand tracking. Uses sphere overlap per joint and generates procedural (collider-based) hand poses instead of authored ones.GrabInteractor: Near-field grab for controllers. Selects objects through rigidbody overlap combined with an ISelector interface (for example, a trigger press). Does not use hand poses or finger rules.DistanceGrabInteractor: Far-field grab for controllers. Selects objects through conical frustums combined with an ISelector interface. Does not use hand poses or finger rules.| Dimension | Hand Grab | Distance Hand Grab | Controller Grab | Distance Grab | Touch Hand Grab |
|---|---|---|---|---|---|
Input | Hands + CDH | Hands + CDH | Controllers (+ hands) | Controllers | Hands + CDH |
Range | Near (arm’s reach) | Far | Near (arm’s reach) | Far | Near |
Selection | Rigidbody overlap + per-finger | Conical frustums | Rigidbody overlap + ISelector | Conical frustums + ISelector | Sphere overlap per joint |
Hand poses | Authored ( HandGrabPose) | Authored ( HandGrabPose) | None | None | Procedural (collider-based) |
Finger rules | Yes (per-finger) | Yes (per-finger) | No | No | N/A (collider-driven) |
Grab types | Pinch / Palm / All (default: All) | Pinch / Palm / All (default: Pinch) | N/A ( ISelector) | N/A ( ISelector) | N/A |
Status | Stable | Stable | Stable | Stable | Experimental |
HandGrabInteractor and DistanceHandGrabInteractor share the IHandGrabInteractable interface, so they use the same hand poses, finger rules, and grab type settings.GrabInteractor and DistanceGrabInteractor both rely on ISelector for external selection logic.HandGrabInteractable and DistanceHandGrabInteractable integrate with the Grabbable component and its transformer system for object movement. The other types use their own movement mechanisms.| Input | Range | Grab type |
|---|---|---|
Hands | Near-field, authored poses | HandGrabInteractor / HandGrabInteractable |
Hands | Near-field, procedural poses | TouchHandGrabInteractor / TouchHandGrabInteractable (experimental) |
Hands | Far-field | DistanceHandGrabInteractor / DistanceHandGrabInteractable |
Controllers | Near-field | GrabInteractor / GrabInteractable |
Controllers | Far-field | DistanceGrabInteractor / DistanceGrabInteractable |
Both | Any | Combine multiple interactable types on the same object |
HandGrabInteractor for near-field interactions and DistanceHandGrabInteractor for far-field interactions. Add the corresponding controller grab types if your application also supports controllers.HandGrabPose assets are shared between HandGrabInteractable and DistanceHandGrabInteractable. You do not need to duplicate poses when both are present on the same object.DistanceHandGrabInteractable to a GameObject that already has a HandGrabInteractable, the distance variant auto-copies the grab type settings, grab rules, and hand poses.| Combination | Purpose |
|---|---|
HandGrab + DistanceHandGrab | Near and far grab with hands |
HandGrab + Grab | Hand and controller near grab |
HandGrab + DistanceHandGrab + Grab + DistanceGrab | Full support for all modalities and ranges |