UnityPlugin
Ultraleap SDK for Unity.
Install / Use
/learn @ultraleap/UnityPluginREADME
Ultraleap Unity Plugin
The Ultraleap Unity Plugin empowers developers to build Unity applications using Ultraleap's hand tracking technology. It includes various assets, examples, and utilities that make it easy to design and build applications using hand tracking in XR projects.
| <div align="center">
<br/>Downloading the Plugin</div> | <div align="center">
<br/>Feature Guides</div>| <div align="center">
<br/>Contributing</div> |
|:---|:---|:---|
| Get set up with the Ultraleap Plugin for Unity. | Discover the available features of the Ultraleap Plugin for Unity. | Contribute to the Open Source repository to make your mark and help others. |
Getting Started
To use this plugin you will need the following:
- The latest Ultraleap Hand Tracking Software. You can get this here.
- An Ultraleap Hand Tracking Camera - follow setup process here.
- Unity 2022.3 LTS or newer. UnityPlugin packages have been tested to work against 2022.3 LTS and Unity 6.3 and URP/BiRP. We currently ship the materials for BiRP but the user will be prompted to convert material to URP, if it is detected.
- Follow one of the Installation workflows listed below.
There are also some notable known issues in this release, worth mentioning here:
- Ultraleap tracking with Ultraleap hardware no longer works on a Meta Quest 3 headset running an OS version >76 due to changes in which permissions are allowed.
- On MacOS only, the client libraries now default to using a different tracking server port. For hand tracking to work, either change the Server Connection Input mode to PORT or set the port in the Server Name Space field to {"tracking_server_port": 12345}
More detailed Getting Started documentation is available on our website
Please note:
- Due to the ever changing landscape of package dependencies in Unity we cannot guarantee compatibility with every plugin or variant of Unity, but aim to provide support for any LTS versions that are under continuous support from Unity.
- If you are sourcing the Unity Plugin directly from this repository, you may find that it does not function well with earlier versions of Unity.
Installation
There are several ways you can consume this plugin. We've listed several recommended workflows for different users below. This list is by no means exhaustive
OpenUPM (Recommended)
This workflow is the easiest way to get up and running and makes updating packages simple.
If you are familiar with OpenUPM, follow the OpenUPM instructions.
OpenUPM Setup
Setup only needs to be performed once per Unity project.
In Edit -> Project Settings -> Package Manager, add a new scoped registry with the following details:
Name: Ultraleap
URL: https://package.openupm.com
Scope(s): com.ultraleap

OpenUPM Adding, Upgrading or Removing Packages
Open the Package Manager (Window -> Package Manager) and navigate to "My Registries" in the dropdown at the top left of the window.

Ultraleap UPM packages should be available in the list. Click on the package you wish to install/modify.
Note: Ultraleap Tracking contains the Core, Hands and Interaction Engine modules. There are older packages created independently by a third party for these modules that are no longer updated.

(Optional) When clicking the package, it will automatically select the latest version. If you want to pick or change to a different version, click the arrow on the left of the package name and then "See all versions".

The package can be installed or removed using buttons in the bottom right. (The install button is replaced with "Upgrade to <version>" if the package is currently installed)

OpenUPM CLI
If you prefer to use a CLI to modify your packages or need to be able to perform actions from a terminal (e.g. CI) then you may find the OpenUPM CLI helpful. See Getting Started with OpenUPM-CLI.
Unity Package (Legacy)
You can find the .unitypackage releases of the Ultraleap Pugin for Unity attached to each release here
Please note, .unitypackages do not handle package dependencies or updates and is therefore only recommended if you wish to modify the package.
Detailed instructions are available in the foldout below.
<details> <summary> Legacy .unitypackage </summary>.unitypackage Summary
.unitypackage files are the legacy consumption method available if you prefer it or which still can be helpful if you:
- need to modify the package content and
- don't expect to upgrade to a newer version
If you don't need to modify package content, the OpenUPM Consumer workflow is recommended. If you do and expect to upgrade to a newer version, the Local UPM Package Contributor workflow is recommended as it enables you to version control your changes using git and resolve any potential conflicts when upgrading.
.unitypackage Adding
- Import the package (
Assets -> Import Package -> Custom Package) which can be downloaded from our Unity developer site or the releases section of this repository.
.unitypackage Upgrading
- (Optional) If you have made any changes to a package you may want to save those changes elsewhere.
- Delete the package content you want to upgrade from
Assets/ThirdParty/Ultraleap. - Import the .unitypackage you wish to change to.
.unitypackage Removing
- Delete the package you want to remove from
Assets/ThirdParty/Ultraleap.
Contributor Workflows
Contributor workflows are used by UnityPlugin developers and are recommended for community members that want to contribute back to the source repository.
<details> <summary> Local UPM Pack