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.
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. |
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 2021.3 LTS or newer. UnityPlugin packages have been tested to work against 2021.3 LTS and 2022.3 LTS.
- Follow one of the Installation workflows listed below.
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.
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
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.
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
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)
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.
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.
Legacy .unitypackage
.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.
- Import the package (
Assets -> Import Package -> Custom Package
) which can be downloaded from our Unity developer site or the releases section of this repository.
- (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.
- Delete the package you want to remove from
Assets/ThirdParty/Ultraleap
.
Contributor workflows are used by UnityPlugin developers and are recommended for community members that want to contribute back to the source repository.
Local UPM Package
This workflow takes a few steps to setup and enables you to:
- Modify UPM package content from within one (or many) Unity project(s).
- Manage changes using git.
- Contribute changes back to the remote repository.
(Note) Git LFS is required when importing via this method.
- Clone or submodule the repository.
- The repository should not be cloned/submoduled into Unity reserved project folders, i.e. Assets, Library, ProjectSettings or Packages. Creating another folder such as "LocalPackages" is recommended.
- (Note) If you don't plan to share your project and would like to use the same UPM packages across multiple Unity projects it may be ideal to clone to a common place on your machine.
You can add packages from the repository to your project in one of two ways:
-
(Sharable) Edit your project manifest.json (
Project/Packages/manifest.json
) to add the relative paths from your Unity project's Packages folder to the Packages in the repository Packages folder. For more information see the Unity Manual. Below is an example if you had cloned the repository to LocalPackages within your Unity project."com.ultraleap.tracking": "file:../LocalPackages/unityplugin/Packages/Tracking", "com.ultraleap.tracking.preview": "file:../LocalPackages/unityplugin/Packages/Tracking Preview",
-
(Not sharable) Open the package manager (
Window -> Package Manager
) and click "Add package from disk…". Point it to the desired package within the repositoryPackages
folder. Repeat to add all the packages you want to reference locally. This will use an absolute file path from your machine, so will not be a sharable solution without modifying the path to work on the new machine.
Changing package versions is done through the git repository itself. Released versions can be found by checking the repository tags.
Our vision is to make it as easy as possible to design the best user experience for hand tracking use cases in XR. We learn and are inspired by the creations from our open source community - any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch:
git checkout -b feature/AmazingFeature - Commit your Changes:
git commit -m "Add some AmazingFeature" - Push to the Branch:
git push origin feature/AmazingFeature - Open a Pull Request
Use of Ultraleap's Unity Plugin is subject to the Apache V2 License Agreement.
Our Discord Server, Github Discussions and Developer Forum are places where you are actively encouraged to share your questions, insights, ideas, feature requests and projects.