Zum Hauptinhalt springen

Wo Skripte sitzen

Sie können ein Skript an ein Objekt, eine Szene, einen Raum oder das ganze Projekt hängen. Die Ebene, die Sie wählen, bestimmt, wie lange das Skript läuft. Das ist oft wichtiger als der Code.

Angehängt anLäuft, solangeEndet, wenn
ein Objektdas Objekt im Bild istes ausgeblendet, deaktiviert oder gelöscht wird
eine Szenedie Szene aktiv istder Besucher die Szene verlässt
einen Raumder Besucher im Raum ister in einen anderen Raum wechselt
das Projektimmer, in jedem Raumer das Projekt verlässt

An einem Objekt​

Das ist der Standard. Nutzen Sie es für Verhalten, das zu einem einzelnen Ding gehört: eine Tür, die aufgeht, ein Gegner, der verfolgt, ein Knopf, der reagiert.

ctx.entity ist dieses Objekt. Das Skript endet, sobald das Objekt verschwindet. Sie müssen also nie hinter einem Objekt aufräumen, das es nicht mehr gibt.

An einer Szene​

Fügen Sie es im Bereich Skripte der Szene hinzu. Nutzen Sie es für Logik, die die ganze Szene betrifft: ein Intro in der richtigen Reihenfolge abspielen, zählen, wie viele Sammelobjekte übrig sind, entscheiden, wann der Besucher weiter darf.

Es startet, wenn die Szene aktiv wird, und endet, wenn sie nicht mehr aktiv ist. In einem AR-Projekt heißt das: Es startet, wenn die Szene erkannt wird.

An einem Raum​

Fügen Sie es im Bereich Skripte des Raums hinzu. Ein Raum-Skript läuft weiter, wenn die Szene wechselt. Nutzen Sie es für einen Punktestand über drei Szenen, einen Timer für den ganzen Besuch oder Logik, die die nächste Szene auswählt.

Ein Tap oder ein anderes Ereignis an einem Objekt erreicht auch das Raum-Skript: Es wandert vom Objekt zur Szene und dann zum Raum.

Am Projekt​

Fügen Sie es in den Projekteinstellungen hinzu. Das Skript wird jedem Raum hinzugefügt. Es ist also überall dabei, wohin der Besucher auch geht.

Nutzen Sie es für Dinge, die von einem Raum zum nächsten erhalten bleiben müssen: die Entscheidungen des Besuchers, den Gesamtfortschritt, Analytics.

Was seinen Wert behält​

Gespeichert inNach einem SzenenwechselNach einem RaumwechselNach dem Neuladen
einer Variablen in initnur, wenn das Skript noch läuftnur, wenn das Skript noch läuftnein
ctx.storejaneinnein
einem globalen Wertjajanein
einem globalen @space:-Wertjanein — jeder Raum hat absichtlich seinen eigenennein
Wer den Tab schließt, verliert alles

Nichts bleibt erhalten: weder store noch globale Werte. Wenn Sie einen Wert beim nächsten Mal brauchen, schicken Sie ihn an einen eigenen Speicherort, solange der Besucher noch auf der Seite ist.

Eine Ebene wählen​

Fragen Sie sich: Was ist das Kleinste, worum es bei dieser Logik geht?

  • Ein Objekt — legen Sie das Skript auf das Objekt.
  • Diese Szene — legen Sie es auf die Szene.
  • Der ganze Besuch — legen Sie es auf den Raum. Gibt es mehrere Räume, legen Sie es auf das Projekt.

Legen Sie nicht alles „für alle Fälle“ auf das Projekt. Ein Projekt-Skript kann sich nicht darauf verlassen, dass eine bestimmte Szene geladen ist. Es füllt sich mit Prüfungen, die ein Skript an einem Objekt nie braucht.

Patches funktionieren genauso​

Auch einen Patch können Sie an jede dieser Ebenen hängen, und er läuft genauso lange. Ein Patch am Projekt ist der übliche Weg, Logik für das ganze Projekt ohne Code zu bauen.


Weiter: Die ctx-API — alles, was ein Skript mit ctx tun kann.