Unity Modules
Ultraleap's Hand Tracking Unity SDK
Getting Started

The UnityModules repository is designed to be opened in Unity 2019.2. However, the most recent release (4.8.0 or later) has been tested with Unity 2019.4 LTS and Unity 2020.2. If you are sourcing UnityModules directly from this repository, your mileage may vary with earlier versions of Unity.

Version 4.9.1 of the Unity Modules is only intended to be used with Version 5.2 of the tracking service (or more recent releases), it is not backwards compatible with previous service releases. For details about service compatibility with Unity Modules and how to upgrade projects, consult the Migration Guide.

Installing the modules

Core is the only dependency for any Module. If you are installing any Unity Modules for a new project, you need only to download the latest stable versions of Core and any modules of interest from our developer page. You can import new modules into your project at any time; to upgrade a module, simply delete its folder from your project to get rid of all of the files in that module, then import the latest module version.

This documentation is updated on a rolling basis, generally to match module releases. It is likely out-of-sync with the develop branch in the UnityModules repository.

For more details on upgrading modules, or if your project already contains older versions of our modules, check out our reference for Upgrading Unity Modules (it's easy).

Which modules are right for you?

  • Core is the dependency for all other modules. Ultraleap's Core Assets provide the foundation for VR applications with a minimal interface between Unity and the Ultraleap camera hardware and a collection of garbageless C# utilities. With Core, you can render a basic set of Leap hands, attach objects to hand joints, and find generally-useful utilities like a non-allocating LINQ implementation and a Tween library.
  • The Interaction Engine provides physics representations of hands and VR controllers fine-tuned with interaction heuristics to provide a fully-featured interaction API: grasping, throwing, stable 'soft' collision feedback, and proximity. It also comes with with a suite of examples and prefabs to power reliable, stable 3D user interfaces as well as any physics-critical experiences akin to Ultraleap's Blocks demo.
  • The hands-module provides the tools you need to rig your 3D hand assets to work with Leap hands, including the powerful hands-auto-rigging-tool.


If you're not seeing hands in your Unity application, check the following first:

  • If you aren't using a custom camera rig, make sure you have the Leap Rig (XR rig) prefab or the LeapHandController (desktop-mounted controller) prefab in your scene.
  • If you're using a custom camera or controller rig, check your application's scene hierarchy while your hand is in front of the sensor. Make sure the hand isn't simply being rendered in the wrong place relative to your camera. Additionally, double-check you have your rig is set up correct: Leap Motion XR rigs.
  • Check the Ultraleap tracking icon in your task bar, which you'll have if you've installed the service from the developer SDK for your platform. If it has a red circle overlay, the Ultraleap tracking service isn't sending any data. Double-check your tracking camera hardware is plugged in, and check that the Ultraleap tracking service is running.
  • Open the Ultraleap Visualizer from the right-click menu of the Ultraleap tracking service icon in your task bar. If you see hands in the Visualizer, the problem is mostly likely somewhere in Unity; otherwise, the problem is outside Unity.