-
Notifications
You must be signed in to change notification settings - Fork 6
Hook
Overview
On each update hook detects the distance between all select-able objects and the controller. It keeps an ordered list of the select-able objects ranked by a scoring system. Based on this the closest objects will gain score while everything else will lose points. By doing this a user can follow a moving object with the controller and differentiate the object that they want to select by its velocity/movement. How this score is calculated is listed below in the method documentation.

Source paper of the technique:
Ortega, M. (2013). “Hook: Heuristics for Selecting 3D Moving Objects in Dense Target Environments.” Proceedings of the 2013 IEEE Symposium on 3D User Interfaces (3DUI), 119–122.
Use by manually attaching
To manually attach the Hook to the Camerarig VR components if the auto-attach fails for each hand:
- Drag onto Hook script:
- Relevant Controller onto Tracked Obj
Inspector parameters
For Hook Script:
| Parameter | Default | Description |
|---|---|---|
| Interaction Layers | PickableObject | The layers that the technique can interact with |
| Interaction Type | Manipulation | When set to manipulation object will jump into hook hand attached via a fixed joint, selection will add the object to an public Variable |
| Selection | None | The publicly accessible variable showing which object is selected. |
| Check For Newly Spawned | True | When enabled any new objects spawned into the scene will be added to the hooks tracking list |
| Currently Hovered | None | Object that will be selected by hook if trigger pressed |
| Selected Object() | Empty | Event Invoked when an object is selected |
| Hovered() | Empty | Event Invoked when an object is hovered over |
| UnHovered() | Empty | Event Invoked when an object ceases being hovered over |
Test/Example scenes
Major example scene under:
- Assets/Technique Example Scenes/Scenes/HookExample
Wiki
Hand Grasping
Enhanced Grasping
Volume-based Pointing
Enhanced Pointing
Symmetric Bi-manual
Asymmetric Bi-manual
Progressive refinement