Unity development overview

Unity banner logo

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!

Important

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 Reverb G2, Oculus Rift, HTC Vive.

Development checkpoints

Use the following checkpoints to bring your Unity games and applications into the world of mixed reality. If you haven't already explored the Designing Holograms sample application, we recommend downloading and using it to familiarize yourself with the basics of Mixed Reality UX.

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.

Checkpoint Outcome
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

Important

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.

Note

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.

Feature Capabilities
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.

Feature Capabilities
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.

5. Adding services

At this point in your development journey you might be looking to add services or for a helping hand with commercial deployment. Integrating Azure Cloud Services and Dynamics 365 features can level up your projects in a major way. We've compiled a few starting points for you to explore and expand your Mixed Reality knowledge.

Azure Remote Rendering (ARR) is a service that lets you to render highly complex 3D models in real time. ARR is currently in public preview. It can be added to your Unity or Native C++ projects targeting HoloLens 2 or Windows desktop PC.

We also have a comprehensive list of support documentation for additional Azure services that you can add to your Unity projects on a self-serve basis.

What's next?

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 aren't in any sequential order, so feel free to jump around and explore!

Porting

If you have existing apps that you'd like to port over, the articles listed below are your next stop/

Tutorials

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.

Additional resources

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.

Topic Description
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

Unity resources

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.

Resource Description
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

See also