Unity development overview
The fastest path to building a mixed reality app in Unity is with the Mixed Reality Toolkit. If you're brand new to Unity, we recommend that you explore the beginner level tutorials on the Unity Learn platform before continuing. It's also a good idea to visit the comprehensive Asset Store and the Unity Mixed Reality forums to engage with the online community building mixed reality apps. You never know what cool assets or solutions you might find out in the wild. When you're ready to get started with MRTK head to the development checkpoints below!
Take a look at our porting guides if you have an existing Unity project that you want to bring over to HoloLens 2. We have guides for projects that are using HTK, MRTK v1, SteamVR or were developed for immersive headsets such as the Oculus Rift or HTC Vive.
Use the following checkpoints to bring your Unity games and applications into the world of mixed reality.
1. Getting started
The easiest way to develop in Unity is with the Mixed Reality Toolkit. MRTK will help you automatically setup a project for Mixed Reality and provide a set of features to accelerate your development process. By the end of this section, you'll have a basic understanding of the Mixed Reality Toolkit, a properly configured development environment for Mixed Reality apps, and a working MRTK project in Unity that you built yourself.
|What is MRTK?||Begin your journey by getting acquainted with the Mixed Reality Toolkit and what it has to offer|
|Install the latest tools||Download and install the latest Unity package and setup your project for mixed reality|
|HoloLens 2 tutorial series||Dive into beginner level MRTK tutorials for HoloLens 2 hardware|
If you'd like to create a new Unity project without importing Mixed Reality Toolkit, there are a small set of Unity settings you'll need to manually change for Windows Mixed Reality. These are broken down into two categories: per-project and per-scene. Take a look at our configuration guide for the step-by-step process.
Once you've setup MRTK V2 in your project, standard Unity game objects like the camera will light up immediately for a seated-scale experience. You can find instructions on changing the experience scale of your application on the coordinate systems page.
2. Core building blocks
All of the core building blocks for mixed reality applications are exposed in a manner consistent with other Unity APIs. These building blocks are available as standalone features and through the Mixed Reality Toolkit. You might not need all of them at once, but we recommend exploring early on. After diving into the core building blocks listed below, you'll have a toolbox full of features you can integrate into a Mixed Reality project by themselves or through MRTK.
|Basic interactions||Learn the basics of interacting with objects in immersive space|
|Camera||Fully optimize visual quality and hologram stability in your Mixed Reality apps|
|Gaze||Let users target holograms with by looking at them|
|Gestures and motion controllers||Add spatial actions to your users gaze input|
|Hand and eye tracking||Integrate articulated hand and eye tracking input into your user experience|
|Spatial mapping||Map your physical space with a virtual mesh overlay to mark the boundaries of your environment|
|Text||Get sharp, high-quality text that has a manageable size and quality rendering|
|Voice input||Capture spoken keywords, phrases, and dictation from your users|
3. Platform capabilities and APIs
Other key features that play a role in mixed reality applications are available through Unity APIs without any extra packages or setup. These features can be added to Unity projects with or without MRTK installed. After diving into the more advanced capabilities that Unity offers, you'll be able to build deeper, complex Mixed Reality apps.
|Shared experiences||View and interact collectively with the same hologram at a fixed point in space using spatial anchor sharing|
|Locatable camera||Capture photos and video content in your Mixed Reality application|
|Focus point||Provide HoloLens a hint about how to best perform stabilization on the holograms currently being displayed|
|Tracking loss||Handle scenarios where your device can't locate itself in the applications world space|
|Keyboard input||Get input from real-world and Mixed Reality keyboards in your apps|
4. Deploying to a device or emulator
Once you've got your holographic Unity project ready for testing, your next step is to export and build a Unity Visual Studio solution. With that VS solution in hand, you can run your application in one of three ways on a real or simulated device. By the end of this section, you'll be able to deploy your application on whichever device or emulator fits your development needs.
- HoloLens or Windows Mixed Reality immersive headset
- HoloLens emulator
- Windows Mixed Reality immersive headset simulator
A developers job is never done, especially when learning a new tool or SDK. The following sections can take you into areas beyond the beginner level material you've already completed, along with helpful resources if you get stuck. Note that these topics and resources are not in any sequential order, so feel free to jump around and explore!
If you have existing apps that you'd like to port over, the articles listed below are your next stop/
If you're looking to add specific Mixed Reality features to your applications, we have several curated tutorials that can run you through the process from end-to-end. Our most popular HoloLens 2 and HoloLens (1st Gen) content is listed below, but you can find the entire collection by visiting the tutorials overview.
Before going out into the world of mixed reality on your own, we recommend taking a look at the MRTK-related documentation listed below. These articles are great jumping off points for understanding how MRTK works in greater detail and will give you insight into making your app more performant.
|MRTK Architecture overview||Get a deeper understanding of how the MRTK SDK works in your projects|
|Settings and performance||Profile your app, update your Unity settings, and get the best hologram stabilization performance available|
|Getting started with MRTK + XR||Transfer over to the alternative XR pipeline provided by Unity|
In addition to this documentation available on docs.microsoft.com, Unity installs documentation for Windows Mixed Reality functionality alongside the Unity Editor. The Unity provided documentation includes two separate sections.
|Scripting reference||This section of the documentation contains details of the scripting API that Unity provides and is accessible online from the Unity Editor by clicking Help > Scripting Reference|
|Manual||This manual is designed to help you learn how to use Unity, from basic to advanced techniques, and is accessible online or from the Unity Editor by clicking Help > Manual|
- Mixed Reality Toolkit v2
- MR Basics 100: Getting started with Unity
- Recommended settings for Unity
- Performance recommendations for Unity
- Exporting and building a Unity Visual Studio solution
- Using the Windows namespace with Unity apps for HoloLens
- Best practices for working with Unity and Visual Studio
- Unity Play Mode
- Porting guides