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# scriptsYes: the headset runs the same module as a PC, in its FL# sandbox. It has less power: keep heavy script work out of Update.
MemoryNo cap of NodeWorld's, but Android closes the game when a world takes more than the headset has (limits).
ShadowsNo: the World Publisher builds the Android files without shadows (since sdk 0.3.5).
Video playersYes: the video player ships with the game on Quest (televisions and video).
Web, WebSocket, imagesYes, through the same network gate as on PC (web).
InputThe 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.

csharp
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).