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 passiert | Gut für | |
|---|---|---|
| Vorgeladen | vor dem Öffnen der Szene geholt; der Startbildschirm wartet darauf | alles, was in den ersten Sekunden sichtbar ist |
| Aufgeschoben | die Szene öffnet ohne es; es erscheint, wenn es eintrifft | Inhalte weiter hinten im Erlebnis |
| Gestreamt | direkt aus dem Netz abgespielt, nie ganz geholt | Video und Audio |
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 sagt | Ergebnis |
|---|---|
| preload on | wird immer abgewartet, egal was das Projekt sagt |
| preload off | wird immer aufgeschoben |
| inherit | folgt 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.
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:
- Vorladen: die Modelle der ersten Szene, ihre Texturen und jede sofort gezeigte Schrift.
- Aufschieben: alles, was zu späteren Szenen gehört.
- 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.
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 */
});
});
| Ereignis | Feuert, wenn |
|---|---|
describe | das Panel gebaut wird — in der Runtime wie im Editor |
start | die Runtime hochfährt |
launch | der Bildschirm zum Antippen gezeigt werden soll |
loading | der sich füllende Bildschirm gezeigt werden soll |
progress | Assets eintreffen — loaded, total, percent |
ready | alles Nötige angekommen ist |
error | etwas schiefgegangen ist |
Parameter können lokalisiert werden, ein Startskript bedient also jede Sprache, die Ihr Projekt ausliefert.
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.
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