A Unity OpenXR template showcasing hand-tracking interactions built on top of the XR Interaction Toolkit and XR Hands packages. The project is pre-configured for Meta Quest and Pico standalone headsets, letting you build for either target from the same code base via custom Platform Build Tools editor scripts.
- Unity Editor
6000.0.23f1(or a newer Unity 6.0 Tech-Stream build).- Install through Unity Hub.
- Add Android Build Support (SDK + NDK + OpenJDK) when installing.
- Git LFS – large binary assets are tracked with LFS. Install from https://git-lfs.com/ and run
git lfs installonce. - Meta Quest / Pico VR headset (for deployment & testing).
- Optional – Pico OpenXR plugin
- The project references the Pico OpenXR package via a local path in
Packages/manifest.json:"com.unity.xr.openxr.picoxr": "file:C:/Users/suriy/Documents/PICO-OpenXR"
- Clone (or download) Pico’s OpenXR SDK into any folder on your machine and update that path in
manifest.jsonaccordingly, e.g."com.unity.xr.openxr.picoxr": "file:D:/SDKs/PICO-OpenXR"
- The project references the Pico OpenXR package via a local path in
Why Unity 6000? Unity 6.0 adds native support for the XR Hands package used by this template. Opening the project in earlier Unity versions will lead to compilation errors.
# Clone with submodules & LFS
git clone https://github.com/<your-org>/hand-tracking-template-openxr.git
cd hand-tracking-template-openxr
# Pull down large binary files
git lfs pullAlternatively download the repository as a zip from GitHub and unzip it.
- Open Unity Hub → Projects → Open and select the project folder.
- Unity will prompt to install the correct editor version if it isn’t installed yet – accept the prompt.
- Wait while Unity restores packages (watch the Package Manager window).
- Open
Assets/Scenes/SampleScene.unityor any demo scene. - Press Play – you should see articulated hand models in the Game view when using a supported XR runtime.
Custom editor menu items automate platform configuration and builds.
- Switch the Build Target to Android (
File → Build Settings… → Android → Switch Platform). - Use the Build menu:
Build → Build for Meta QuestBuild → Build for Pico
The script will:
- Enable / disable the correct OpenXR Interaction Profiles.
- Adjust OpenXR feature sets (hand tracking, controller profiles, etc.).
- Increment the
PlayerSettings.bundleVersionandbundleVersionCode. - Create an
APKin aBuilds/<Platform>/folder.
💡 Connect the headset via USB and enable USB Debugging to install & launch the build automatically.
com.unity.xr.hands1.6.0 – Hand tracking data provider.com.unity.xr.interaction.toolkit3.0.8 – Interaction system.com.unity.xr.openxr1.12.1 – OpenXR loader.com.unity.render-pipelines.universal17.0.3 – URP rendering.
| Issue | Fix |
|---|---|
| Packages fail to resolve | Make sure you’re using Unity 6.0 Tech-Stream or later. |
| Pico build errors | Verify the com.unity.xr.openxr.picoxr path in Packages/manifest.json points to a valid Pico OpenXR SDK folder. |
| Hand mesh invisible | Check that XR Hand Mesh Controller feature is enabled in Project Settings → XR Plug-in Management → OpenXR → Features. |
This project is licensed under the MIT License.
Made with ♥ and Unity OpenXR.