I saw a posting on Reddit about this, and I’ve been getting 3 dots of death and a black screen on Android builds for both Meta Quest and Pico. I’m posting this here to help other folks resolve this, as it is indicative of XR plugin conflicts when using Meta and OpenXR plugins at the same time…
After an entire year, I finally figured out why this happens. It’s mostly on Meta’s end as there are several XR management settings now and THEY CONFLICT WITH EACH OTHER
Builds need to be different for Android + Meta Quest versus Open XR platforms. If you fail to follow this instructions, your builds may (usually completely at random) boot into a completely black loading screen.
- Use asmdef files for your project. If you’re not doing this in your scripts folder, you may need to reorganize all the code in your project.
- Meta Quest:
-
- When building for android meta quest, manually link Unity.XR.Oculus in the asmdef file for your project
- Do not link Unity.XR.OpenXR. Get rid of it
- Only tick Oculus in your XR Plugin Management settings. Do not tick OpenXR under any circumstances
- Open XR:
-
- For all other platforms, GET RID of Unity.XR.Oculus, and use Unity.XR.OpenXR instead in your asmdef
- Any code that depends on Unity.XR.Oculus (for example, for setting the refresh rate) needs to be manually changed if you get rid of it, or add it
- Under XR Plugin Management, select OpenXR and do not select Oculus under any circumstances
- Other issues:
-
- Recent Unity versions like Unity 6 have an enormous number of shader settings for URP. The more settings in your project, the more shader variants get compiled.
- Get rid of as many settings as possible. For example, if you have multiple quality levels but aren’t using post processing or terrain holes in your actual game, do not include these quality levels in your android builds, and do not switch on unused features like terrain holes.
- When upgrading to Unity 6, I had 300 MB of additional shader variants compiled, which took so long to boot into VRAM for the Oculus, the game crashed. Getting rid of all graphical settings except 1 in the “Quality settings” resolved the issue.