Worlds on Meta Quest
Meta Quest is an Android headset: it plays the world's Android files, built by the World Publisher with the rest.
Publish Android
Keep Android checked in the World Publisher: a world without its Android files cannot be joined from a Quest. Unity builds it with Android Build Support, a module of the Unity Hub (the SDK).
Make it lighter there
A Quest has less memory and power than a PC. The Platform Switch keeps one scene and gives objects, components and materials other values on Android: a lighter mesh, a simpler material, an effect, a light or a mirror turned off. The World Publisher applies them when it builds the Android files.
Every texture of the scene needs mipmaps and mipmap streaming: the World Publisher stops until they have them (publish a world).
What works on Quest
| On Quest | |
|---|---|
| FL# scripts | Yes: the headset runs the same module as a PC, in its FL# sandbox. It has less power: keep heavy script work out of Update. |
| Memory | No cap of NodeWorld's, but Android closes the game when a world takes more than the headset has (limits). |
| Shadows | No: the World Publisher builds the Android files without shadows (since sdk 0.3.5). |
| Video players | Yes: the video player ships with the game on Quest (televisions and video). |
| Web, WebSocket, images | Yes, through the same network gate as on PC (web). |
| Input | The controllers of the headset: Player.isInVR is true, Input.isDesktop is false. |
Tell Quest in a script
World.isMobile is true on Quest (an Android or iOS client), false on PC and on the server. A script lowers what it does there: a mirror's resolution, the count of instanced objects, a particle rate.
protected override void Start()
{
if (!World.isMobile) return;
var main = GetComponent<ParticleSystem>().main;
main.maxParticles = 200;
}Avatars
Avatars have their own Android files: an avatar without them is not worn on Quest, players there see a default avatar instead (publish an avatar).
