Zum Hauptinhalt springen

Laden und der Startbildschirm

Ihr Besucher wartet einmal, am Anfang. Worauf er wartet, ist Ihre Entscheidung — und der größte einzelne Hebel dafür, wie sich das Öffnen Ihres Erlebnisses anfühlt.

Drei Arten, wie ein Asset ankommt

Was passiertGut für
Vorgeladenvor dem Öffnen der Szene geholt; der Startbildschirm wartet daraufalles, was in den ersten Sekunden sichtbar ist
Aufgeschobendie Szene öffnet ohne es; es erscheint, wenn es eintrifftInhalte weiter hinten im Erlebnis
Gestreamtdirekt aus dem Netz abgespielt, nie ganz geholtVideo und Audio
Aufschieben ist nicht Streamen

Nur Video und Audio können zu spielen beginnen, bevor sie vollständig da sind. Ein Modell, eine Textur oder eine Schrift muss weiterhin komplett ankommen, bevor irgendetwas sie nutzen kann — eines aufzuschieben heißt nur, dass die Szene ohne Warten öffnet und das Asset aufpoppt, sobald es bereit ist.

Die Projektvoreinstellung und Ausnahmen je Asset

Die Projekteinstellung Preload ist die Voreinstellung für alles. Jedes Asset kann sie dann übersteuern:

Das Asset sagtErgebnis
preload onwird immer abgewartet, egal was das Projekt sagt
preload offwird immer aufgeschoben
inheritfolgt dem Projekt

Neue Assets starten vernünftig: Video und Audio streamen standardmäßig — auf ein ganzes Video zu warten, bevor die Szene öffnet, bringt nichts — und alles andere folgt dem Projekt.

Die Wahl gehört zum Asset, nicht zum Objekt, das es benutzt

Zwei Objekte, die sich eine Datei teilen, können sich nicht mehr darüber uneinig sein, wie sie lädt. Stellen Sie es einmal an der Datei ein.

Ein praktisches Rezept

Für die meisten Projekte:

  1. Vorladen: die Modelle der ersten Szene, ihre Texturen und jede sofort gezeigte Schrift.
  2. Aufschieben: alles, was zu späteren Szenen gehört.
  3. Streamen: alles Video und Audio — das ist ohnehin die Voreinstellung.

Das Ergebnis ist eine kurze Wartezeit, gefolgt von einem Erlebnis, das nie wieder blockiert.

Der Startbildschirm

Bevor die Welt existiert, können zwei Bildschirme erscheinen: der, den der Besucher antippt, um zu beginnen, und der, der sich füllt, während Assets eintreffen.

Beide werden in den Projekteinstellungen konfiguriert — Hintergrund, Logo, Start-Button und seine Beschriftung, die Onboarding-Hinweise, der Stil des Loaders.

Behalten Sie den Start-Button, sobald es irgendeinen Ton gibt

Browser spielen kein Audio ab, bevor der Besucher mit der Seite interagiert hat. AR-Berechtigungen funktionieren genauso: Sie werden innerhalb des Tippens erteilt, das sie angefordert hat. Ohne Button zum Drücken spielt Ihr erster Ton still nicht ab, und die Kamera-Abfrage erscheint vielleicht nie.

Ihn durch einen eigenen ersetzen

Der eingebaute Bildschirm ist ein Preset. Brauchen Sie einen eigenen, übernimmt ein Startskript beide Bildschirme vollständig — und, ungewöhnlicherweise, deklariert es auch sein eigenes Einstellungs-Panel, sodass wer es benutzt Felder zum Ausfüllen bekommt statt Code zum Bearbeiten.

init((ctx: PreloadContext) => {
// Deklariert das Panel. Läuft, bevor irgendetwas gezeichnet wird — nur deklarieren, nie zeichnen.
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', () => {
/* der Bildschirm, den sie zum Beginnen antippen */
});

ctx.on('loading', () => {
/* der Bildschirm, der sich füllt */
});

ctx.on('progress', ({ loaded, total, percent }) => {
/* aktualisieren Sie Ihren eigenen Balken */
});

ctx.on('ready', () => {
/* alles ist angekommen */
});
});
EreignisFeuert, wenn
describedas Panel gebaut wird — in der Runtime wie im Editor
startdie Runtime hochfährt
launchder Bildschirm zum Antippen gezeigt werden soll
loadingder sich füllende Bildschirm gezeigt werden soll
progressAssets eintreffen — loaded, total, percent
readyalles Nötige angekommen ist
erroretwas schiefgegangen ist

Parameter können lokalisiert werden, ein Startskript bedient also jede Sprache, die Ihr Projekt ausliefert.

Starten Sie die Szene aus dem Tippen heraus

Was auch immer den Beginn auslöst, muss aus dem Klick-Handler des Buttons selbst aufgerufen werden. Berechtigungen — Geräteausrichtung, Kamera — werden nur innerhalb der Geste erteilt, die sie angefordert hat, und ein auf das nächste Bild verschobener Start verliert dieses Recht.

Ein kaputtes Startskript kann Ihre Besucher nicht aussperren

Wirft es einen Fehler, verwirft die Runtime das Preset und zeigt stattdessen den eingebauten Bildschirm.

Was nicht wartet

Physik wird gar nicht heruntergeladen, solange eine Szene sie nicht braucht, und die Anordnung instanzierter Objekte und Partikel wird erzeugt statt übertragen. Beides steht in Warum diese Engine — sie gehören zur selben Idee: Leute nicht auf das warten lassen, was sie nicht brauchen.


Weiter: Die gemeinsamen Pakete