Saltar al contenido principal

Carga y pantalla de lanzamiento

Tu visitante espera una vez, al principio. Qué espera es una decisión tuya, y es la palanca individual más grande sobre la sensación que da abrir tu experiencia.

Tres formas en que puede llegar un recurso

Qué ocurreBueno para
Precargadose descarga antes de abrir la escena; la pantalla de lanzamiento lo esperatodo lo visible en los primeros segundos
Diferidola escena abre sin él; aparece cuando llegacontenido más adelante en la experiencia
En streamingse reproduce directamente desde la red, nunca se descarga enterovídeo y audio
Diferir no es hacer streaming

Solo el vídeo y el audio pueden empezar a reproducirse antes de haber llegado del todo. Un modelo, una textura o una tipografía tienen que llegar completos antes de que nada pueda usarlos: diferir uno significa solo que la escena abre sin esperar, y el recurso aparece cuando está listo.

El valor por defecto del proyecto y las excepciones por recurso

El ajuste de proyecto Preload es el valor por defecto para todo. Cada recurso puede luego sobrescribirlo:

El recurso diceResultado
preload onsiempre se espera, diga lo que diga el proyecto
preload offsiempre se difiere
inheritsigue al proyecto

Los recursos nuevos arrancan con sensatez: el vídeo y el audio se transmiten por defecto —esperar a un vídeo entero antes de abrir la escena no aporta nada— y todo lo demás sigue al proyecto.

La decisión pertenece al recurso, no al objeto que lo usa

Dos objetos que comparten un archivo ya no pueden discrepar sobre cómo carga. Configúralo una vez, en el archivo.

Una receta práctica

Para la mayoría de los proyectos:

  1. Precargar los modelos de la primera escena, sus texturas y cualquier tipografía que muestres de inmediato.
  2. Diferir todo lo que pertenezca a escenas posteriores.
  3. Transmitir todo el vídeo y el audio, que ya es lo predeterminado.

El resultado es una espera corta seguida de una experiencia que no vuelve a bloquearse.

La pantalla de lanzamiento

Antes de que el mundo exista pueden aparecer dos pantallas: la que el visitante toca para empezar y la que se va llenando mientras llegan los recursos.

Ambas se configuran en los ajustes del proyecto: fondo, logotipo, el botón de inicio y su texto, los avisos de onboarding, el estilo del cargador.

Conserva el botón de inicio si hay cualquier sonido

Los navegadores se niegan a reproducir audio hasta que el visitante interactúa con la página. Los permisos de AR funcionan igual: se conceden dentro del mismo toque que los pidió. Sin un botón que pulsar, tu primer sonido no suena en silencio y puede que el aviso de la cámara no aparezca nunca.

Sustituirla por la tuya

La pantalla integrada es un preajuste. Si necesitas la tuya, un script de lanzamiento se hace cargo por completo de las dos pantallas y, de forma poco habitual, declara además su propio panel de ajustes, de modo que quien lo use obtiene campos que rellenar en vez de código que editar.

init((ctx: PreloadContext) => {
// Declara el panel. Corre antes de dibujar nada: solo declara, nunca dibujes.
ctx.on('describe', (p) => {
p.section('look', { en: 'Look' });
p.color('tint', { label: { en: 'Background' }, default: '#101014', section: 'look' });
p.text('caption', { label: { en: 'Caption' }, default: '', localized: true, section: 'look' });
p.boolean('hideWhenReady', { label: { en: 'Hide when ready' }, default: true });
});

ctx.on('launch', () => {
/* la pantalla que tocan para empezar */
});

ctx.on('loading', () => {
/* la pantalla que se va llenando */
});

ctx.on('progress', ({ loaded, total, percent }) => {
/* actualiza tu propia barra */
});

ctx.on('ready', () => {
/* ha llegado todo */
});
});
EventoSe dispara cuando
describese está construyendo el panel, igual en el runtime que en el editor
startel runtime está arrancando
launchtoca mostrar la pantalla que el visitante toca
loadingtoca mostrar la pantalla que se llena
progressvan llegando recursos — loaded, total, percent
readyha llegado todo lo necesario
erroralgo ha salido mal

Los parámetros pueden ser localizados, así que un solo script de lanzamiento sirve para todos los idiomas que publique tu proyecto.

Arranca la escena desde dentro del toque

Lo que uses para empezar tiene que llamarse desde el propio manejador de clic del botón. Los permisos —orientación del dispositivo, cámara— solo se conceden dentro del gesto que los pidió, y un arranque aplazado al siguiente fotograma pierde ese derecho.

Un script de lanzamiento roto no puede dejar fuera a tus visitantes

Si lanza un error, el runtime descarta el preajuste y muestra la pantalla integrada.

Qué no espera

La física no se descarga en absoluto a menos que una escena la necesite, y la disposición de los objetos instanciados y de las partículas se genera en lugar de transferirse. Ambas cosas se tratan en por qué este motor: forman parte de la misma idea de no hacer esperar a la gente por lo que no necesita.


Siguiente: Los paquetes compartidos