The Unity packages that support XRAn umbrella term encompassing Virtual Reality (VR), Augmented Reality (AR) and Mixed Reality (MR) applications. Devices supporting these forms of interactive applications can be referred to as XR devices. More info
See in Glossary development fall into two broad categories:
The Unity XR plug-in framework provides the basis for XR development in Unity. You can add support for an XR device to a project by installing and enabling the relevant XR plug-in. You can add or remove plug-ins to the project at any time.
For instructions on how to add XR plug-ins to your project using the XR Plug-in Management system, refer to XR Project set up.
Unity supports the following XR plug-ins:
Plug-in | Supported devices |
---|---|
Apple ARKit | iOS devices |
Google ARCore | Handheld Android devices |
Microsoft HoloLens | HoloLens, HoloLens 2 |
Microsoft Windows Mixed Reality | Microsoft supported package for HoloLens and Windows Mixed Reality headsets (various manufacturers). Note: In Unity 2021+. use the OpenXR provider plug-in for Windows Mixed Reality. The previous WMR provider package is not supported beyond Unity 2020.3. Refer to Windows Mixed Reality support for more information. |
Oculus | Oculus Rift, Meta Quest 2, Quest 3, Quest Pro. |
OpenXR | Any device with an OpenXR runtime, including Meta headsets, Vive headsets, Valve SteamVR, HoloLens, Windows Mixed RealityMixed Reality (MR) combines its own virtual environment with the user’s real-world environment and allows them to interact with each other. See in Glossary, and others. |
Unity OpenXR: Meta | Meta Quest devices. |
Unity OpenXR: Android XR | Android XR devices. |
PlayStation VR (available to registered PlayStation developers) | Sony PS VR and PS VR2 devices. Refer to PlayStation Partners for more information. |
Apple visionOS XR | Apple Vision Pro |
Refer to XR Platform System Requirements for system requirements for developing XR projects in Unity.
Notes:
Unity’s XR packages build on the XR plug-in framework to add additional application-level features and developer tools.
The XR packages include:
Package | Description |
---|---|
XR Plug-in Management | Adds Project SettingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info See in Glossary for managing the platforms and plug-ins used by a Unity XR project. Refer to Project setup for information about managing XR plug-ins. |
AR Foundation | Provides cross-platform AR features, such as plane detection, meshing, and object tracking. Required for developing AR applications with the Unity XR packages. |
XR Interaction Toolkit | Provides interaction components for adding controller-based interaction and manipulation, UI(User Interface) Allows a user to interact with your application. Unity currently supports three UI systems. More info See in Glossary interaction, and movement. Supports VR, MR, and AR. |
XR Hands | Provides an interface for accessing hand tracking data in an XR application. You must also use a provider plug-in that supports hand tracking, such as OpenXR version 1.12. |
PolySpatial visionOS packages | A set of packages that provides support for VR and AR/MR apps on the Apple Vision Pro. Requires a Unity Pro, Enterprise, or Industry subscription. |
Unity Mars | Provides components and tools for adapting AR content to the user’s surroundings. For example, it supplies a standard way of querying the environment to find suitable locations for adding your digital content to the sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info See in Glossary. Requires a license that includes Unity Mars. Refer to Unity Mars for information about license requirements. |
XR Core Utilities | Contains software utilities used by other XR plug-ins and packages. Typically installed in your project as a dependency of other XR packages. |
XR Legacy Input Helpers | Contains software utilities related to XR input. This package is being phased out, but is still installed as a dependency by some XR packages. |
Note: If you use the AR Foundation package in a project, the version numbers of AR Foundation, ARCore, and ARKit must all match. That is, if you are using version 6.0 of the AR Foundation package, you must also use version 6.0 of the ARCore and ARKit packages.
The following information provides details about support for specific XR devices.
You can develop windowed apps with only the visionOS platform support module installed. A windowed app operates in a single, flat window, much like a window on a desktop platform. A user’s gaze and hand gestures are translated into touch input by the visionOS operating system (direct access to the gaze and hand tracking data is not supported in this mode.) You can create or port non-XR Unity applications and games to the Apple Vision Pro device as windowed apps. Refer to visionOS platform for more information.
To develop XR apps (VR, AR, or MR), you must install the visionOS and PolySpatial packages. You must have a Unity Pro, Enterprise, or Industry subscription to use these packages. Refer to the PolySpatial visionOS documentation for more information.
Developing for the Magic Leap 1 is not supported after Unity 2020.3. Developing for the Magic Leap 2 is not supported after Unity 6.0.
Unity version | Package version | Device model |
---|---|---|
Unity 2019.4–2020.3 | com.unity.xr.magicleap@6.4 | Magic Leap 1 |
Unity 2021.1–2022.1 | No version supported. | None |
Unity 2022.2–6000.0 | com.unity.xr.magicleap@7.0 | Magic Leap 2 |
Unity 6001.0+ | No version supported (end of life). | None |
Use the OpenXR provider plug-in to develop for Windows Mixed Reality devices.
To configure the OpenXR provider plug-in for Windows MR:
In the Unity Editor, open Edit > Project Settings
Select the XR Plug-in Management category.
Choose the Windows, Mac, Linux tab.
In the Plug-in Providers list, enable OpenXR.
The OpenXR package installs, if necessary.
Click the Help icon next to the Windows Mixed Reality feature group option to open the Microsoft Mixed Reality OpenXR Plugin setup instructions.
Follow the instructions to install the Microsoft Mixed Reality OpenXR plug-in. (The Microsoft Mixed Reality Feature Tool program lists the plug-in under its Platform Support category.)
Enable the Windows Mixed Reality feature group.
After you have installed the plug-in, review the OpenXR settings under XR Plug-in Management.
Unity supports development for Meta Quest 2, 3, 3S, and Quest Pro. Refer to Develop for Meta Quest workflow to get started with development for Quest devices.
Meta has dropped support for the Quest 1 device as of version 51.0 of their Platform SDK. The Platform SDK is included in version 51.0 of the Oculus Integration package on the Unity Asset StoreA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole project examples, tutorials and Editor extensions. More info
See in Glossary. To continue developing for the Quest 1, you must use version 50 or earlier of the Oculus Integration package. If needed, you can download this version from the Meta Quest downloads page: https://developer.oculus.com/downloads/package/unity-integration/50.0.
In addition, version 4+ of the Oculus provider plug-in package no longer supports Quest 1 development. You must use an earlier version of the Oculus provider plug-in to continue developing for the Quest 1. Because Oculus 4.0 is the verified packageWhen a package passes release cycle testing for a specific version of Unity, it receives the Verified For designation. This means that these packages are guaranteed to work with the designated version of Unity.
See in Glossary version on Unity 2022.3, you must downgrade to the lower package version.
To install version 3.3.0 of the Oculus package:
Open your project in the Unity Editor.
Click Oculus XR plug-in version 3.3.0.
The Package Manager window opens, showing the Add package by name dialog
Click Add to install the last compatible version of the plug-in.
Alternately, you can open the Add package by name dialog manually and enter the package id and version. You can also edit the project’s package manifestEach package has a manifest, which provides information about the package to the Package Manager. The manifest contains information such as the name of the package, its version, a description for users, dependencies on other packages (if any), and other details. More info
See in Glossary file directly to reference the required package version:
"com.unity.xr.oculus": "3.3.0"
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.
When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.
More information
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Some 3rd party video providers do not allow video views without targeting cookies. If you are experiencing difficulty viewing a video, you will need to set your cookie preferences for targeting to yes if you wish to view videos from these providers. Unity does not control this.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.