Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Build and Upload Rift Applications

This section describes the steps necessary for building Rift apps in Unity.

Build Settings

Click on File > Build Settings... and select one of the following:

For Windows, set Target Platform to Windows and set Architecture to either x86 or x86 64.

We recommend unchecking Development Build for your final build, as it may impact performance.

For Mac, set Target Platform to Mac OS X.

Using Unity’s URP

Unity’s Universal Render Pipeline (URP) allows you to control to modify the render pass of your application. See Unity’s documentation about how to use (or upgrade) and modify the URP - https://docs.unity3d.com/Packages/com.unity.render-pipelines.lightweight@5.3/manual/index.html

For Oculus development, we recommend that developer use the linear color space. The gamma color space is supported, but not recommended. Oculus runtimes support sRGB textures, using the linear color space and leveraging hardware sRGB for the conversion is the recommended configuration.

In addition to the URP, we recommend using the SRP Batcher to optimize CPU usage in the render pass. Information about using the SRP Batcher can be found in Unity’s https://blogs.unity3d.com/2019/02/28/srp-batcher-speed-up-your-rendering/ blog.

We recommend that developers do not use any post-processing. There is a measurable performance cost to any post-processing pass.

Player Settings

Within the Build Settings pop-up, click Player Settings. In the Other Settings frame, verify that Virtual Reality Supported is checked. All additional required settings are enforced automatically.

Quality Settings

Navigate to Edit > Project Settings > Quality. We recommend the following settings:

Pixel Light Count3
Texture QualityFull Res
Anisotropic TexturesPer Texture
Anti Aliasing2x or 4x Multi Sampling
Soft ParticlesDeselect
Realtime Reflections ProbesSelect
Billboards Face CameraSelect

The Anti Aliasing setting is particularly important. It must be increased to compensate for stereo rendering, which reduces the effective horizontal resolution by 50%. An anti-aliasing value of 2X is ideal, 4x may be used if you have performance to spare. We do not recommend 8x.

For more information on our recommended settings, see Best Practices for Rift and Mobile.

Build and Run the Application

In the Build Settings dialog, click select Build. If prompted, specify a name and location for the build.

Your Unity application will be built in the location you selected. Builds created in Unity versions 2018.2.0 and later will also include : UnityPlayer.dll, UnityCrashHandler64.exe, and a new Mono directory at the same level as <AppName.exe>.

To run your application, you must allow apps that have not been reviewed by Oculus to run on your Rift:

  1. Launch the Oculus app
  2. Click the “gear” icon in the upper-right
  3. Select Settings > General and set Unknown Sources to allow. When prompted for confirmation, select Allow (check mark).

You may wish to disable the Unknown Sources option when you are not doing development work.

To run your application, navigate to the target folder of your build and launch the executable.

Upload your Rift Application

The Oculus Unity Integration provides the OVRPlatform Tool that you can use to upload your app to Oculus. You can upload development builds to a pre-production release channel, or your final build for Store Review. The OVRPlatform Tool uses the Oculus Platform Command Line Utility.

For information about uploading your apps to a Release Channel or Store using the Oculus Dashboard, please see the Uploading Rift Apps page.

To use the OVRPlatform Tool, open the diaglog by selecting Oculus / Tools / Oculus Platform Tool.

Review Oculus Platform Command Line Utility for information about the parameters in the OVRPlatform Tool dialog.