MRTK's support for Quest devices comes via two different sources: Unity's OpenXR Plugin package for the XR SDK pipeline and the Mixed Reality OpenXR Plugin package. The OpenXR XRSDK Data Provider enables the use of both sources and must be used to deploy MRTK on the Quest.
You can use the Mixed Reality OpenXR Plugin to deploy MRTK applications to the Quest. After enabling OpenXR, ensure any required features are enabled (likely "Hand Tracking" and "Meta Quest Support").
Ensure your profile (if not using the MRTK default) is set up with the OpenXR Device Manager. See Configuring MRTK for the XR SDK pipeline for more information on ensuring your profile is ready for OpenXR.
MRTK's support for Quest devices comes via two different sources: Unity's Oculus Plugin package for the XR SDK pipeline and the Oculus Integration Unity package. The Oculus XRSDK Data Provider enables the use of both sources and must be used to deploy MRTK on the Oculus Quest.
The Unity XR SDK Pipeline enables the use of Oculus Touch controllers and head tracking with the Quest.
This pipeline is the standard for developing XR applications in Unity 2019.3 and beyond. To use this pipeline, make sure that you using Unity 2019.3 or newer. This is required to deploy MRTK applications to the Quest.
Ensure that the Oculus XR Plugin is installed under Window --> Package Manager
Make sure that the Oculus Plug-in Provider is included in your project by going to Edit --> Project Settings --> XR Plug-in Management --> Plug-in Providers
Setting up the Oculus Integration Unity package to enable hand tracking
Download and import Oculus Integration from the Unity Asset Store. The latest version tested to
work is 39.0.0. Prior versions will not work due to change made to the Oculus API. All versions of the Oculus Integration Package can be found from this archive.
Navigate to Mixed Reality Toolkit > Utilities > Oculus > Integrate Oculus Integration Unity Modules. Doing this will update the asmdefs with definitions and references needed for the
relevant Quest code to function. It will also update the csc file to filter out the obsolete warnings produced by the Oculus Integration assets. The MRTK repo contains a csc file that converts warnings to errors, this conversion halts the MRTK-Quest configuration process.
In the imported Oculus folder (It should be found at Assets/Oculus), there is a scriptable object called OculusProjectConfig. In that config file, you need to set HandTrackingSupport
to "Controllers and Hands".
Using the Oculus XR SDK Data Provider
Configure your profile to use the Oculus XR SDK Data Provider
If not intending to modify the configuration profiles
Use any of the default MRTK profiles, which are all configured across Unity's XR pipelines. The previous DefaultXRSDKConfigurationProfile is now labeled obsolete.
Select the MixedRealityToolkit game object in the hierarchy and select Copy and Customize to clone the default mixed reality profile.
Select the Input Configuration Profile.
Select Clone in the input system profile to enable modification.
Open the Input Data Providers section, select Add Data Provider at the top, and new data provider will be added at the end of the list. Open the new data provider and set the Type to Microsoft.MixedReality.Toolkit.XRSDK.Oculus > OculusXRSDKDeviceManager.
Configure your profile to use the Oculus XR SDK Data Provider
If not intending to modify the configuration profiles
Change your profile to DefaultXRSDKConfigurationProfile.
Select the MixedRealityToolkit game object in the hierarchy and select Copy and Customize to clone the default mixed reality profile.
Select the Input Configuration Profile.
Select Clone in the input system profile to enable modification.
Open the Input Data Providers section, select Add Data Provider at the top, and new data provider will be added at the end of the list. Open the new data provider and set the Type to Microsoft.MixedReality.Toolkit.XRSDK.Oculus > OculusXRSDKDeviceManager.
The Oculus XR SDK Data Provider includes an OVR Camera Rig Prefab which automatically configures the project with an OVR Camera Rig and OVR Hands to properly route input. Manually adding an OVR Camera Rig to the scene will require manual configuration of settings and input.
Removing Oculus Integration from the Project
Navigate to Mixed Reality Toolkit > Oculus > Separate Oculus Integration Unity Modules
Let Unity refresh as references in the Microsoft.MixedReality.Toolkit.Providers.Oculus.asmdef and other files are modified in this step
Close Unity
Close Visual Studio, if it's open
Open File Explorer and navigate to the root of the MRTK Unity project
Delete the UnityProjectName/Library directory
Delete the UnityProjectName/Assets/Oculus directory
Delete the UnityProjectName/Assets/Oculus.meta file
Reopen Unity
Build and deploy your project to Quest
Plug in your Quest via a USB 3.0 -> USB C cable
Navigate to File > Build Settings
Change the deployment to Android
Ensure that the Quest is selected as the applicable run device
Select Build and Run
You may encounter the following set of build errors when you select Build and Run the first time. It shouldn't prevent deployment. See issue #10449 for more information and potential mitigation options.
Accept the Allow USB Debugging prompt from inside the Quest
See your scene inside the Quest
Common errors
Quest not recognized by Unity
Make sure your Android paths are properly configured. If you continue to encounter problems, follow this guide.
Look under Edit > Preferences > External Tools > Android: