Unity/C# repository for the Universal Gestures XR client. This is where we house the developer-facing features of the Universal Gestures Package. See the Technical Specification for more details.
Related: Universal Gestures Lab (ML Repository) and Scrum Board.
Unity is the editor that we use to create 3D/XR applications. We will be using it as our engine for the project. Download the Unity Hub, then use it to install Editor version 2022.3.24f1. Create a Unity account to go along with your install.
Clone the repository, then open Unity Hub on your computer. Choose "Add" and select the cloned folder. This will add the Universal Gestures project to your Unity Hub, where you can then launch the project.
If you want to run the project on a Quest headset to test its functionality, you will need to install the Oculus PC App. Note that this only supports Windows PCs. To connect your Quest headset to your PC, you can use a Link Cable (requires USB3.0 port on your computer) or Air Link (requires strong Wifi connection that Quest can independently connect to: eduroam is not compatible).
Once connected to your PC, launch Link Mode on your Quest if it's not automatically started. In Unity, ensure Oculus is added to the list of active loaders (Edit > Project Settings > Meta XR). Then, you can simply start Play Mode and the app will be displayed to the Quest headset.
- Run the Unity project (with a headset and hand tracking preferred).
- Select either the "One Hand" or "Two Hands" button depending on what kind of data you're collecting.
- To begin recording, select either the "Rec. Pos." or "Rec. Neg." button to record positive or negative gesture data, respectively. Configure the delay before recording begins and how long the recording lasts in the Unity project "Scripts" GameObject by changing the "Recording Duration" and "Recording Start Delay" fields.
- The data is saved to the
JsonData/
folder in the root of the Unity project if on running on computer, or inRoot/Android/data/{project name}/files/JsonData
when recording standalone on a headset.