Ereignisse
Mit Ereignissen reagiert Ihre Szene auf Menschen, ganz ohne Code. Wenn etwas passiert, führt das Objekt die Schritte aus, die Sie festgelegt haben.
WENN jemand die Tür antippt
DANN sie in 600 ms aufschwingen lassen
das Schild „abgeschlossen“ deaktivieren
das Signal „door-open“ senden
Das Wenn ist ein Trigger. Das Dann ist eine Liste von Schritten. Ein Objekt kann beliebig viele Ereignisse haben, und jedes läuft für sich.
Ereignis hinzufügen
- Wählen Sie das Objekt aus.
- Klicken Sie im Inspektor auf + neue Komponente und wählen Sie Ereignisse. Die Komponente beginnt mit einem Ereignis, das auf Druck auf das Objekt eingestellt ist.
- Klicken Sie auf das Ereignis. Das Panel Ereigniseinstellungen öffnet sich. Ein weiteres Ereignis fügen Sie mit + Ereignis hinzufügen hinzu.
- Wählen Sie einen Trigger oder behalten Sie Druck auf das Objekt.
- Klicken Sie auf + Aktion hinzufügen und wählen Sie einen Schritt. Die Liste hat ein Suchfeld, und die Schritte sind in Aktionen, Animationen, Zustände und Logik gruppiert.
- Fügen Sie weitere Schritte auf die gleiche Weise hinzu. Sie laufen der Reihe nach ab.
Die Trigger-Referenz listet alle Trigger auf.
Die Schritt-Referenz listet alle Schritte auf.
Beide sind immer aktuell. Neben dem Namen im Editor steht dort der Code-Name für Skripte:
Signal senden ist emit_signal, und Signal ist on-signal.
Trigger
Ein Trigger ist der Moment, in dem ein Ereignis startet. Die Einstellungen jedes Triggers finden Sie in den Referenzen oben. Die Tabellen hier zeigen, wofür jeder Trigger da ist.
Zeiger und Tasten
| Im Editor | Wird ausgelöst, wenn |
|---|---|
| Druck auf das Objekt | jemand das Objekt antippt oder anklickt; mit Zweigen für Klick, Drücken und Loslassen |
| Hover | der Cursor auf das Objekt fährt oder es verlässt |
| Doppelklick | zwei Klicks innerhalb von 300 ms auf dasselbe Objekt fallen |
| Langes Drücken | das Objekt 450 ms lang gehalten wird, ohne den Finger zu bewegen |
| Taste | eine Taste gedrückt oder losgelassen wird |
| Scrollen | sich das Mausrad dreht; die Richtung können Sie wählen |
| Ziehen | jemand platzierte AR-Inhalte verschiebt |
| Skalieren | jemand platzierte AR-Inhalte mit zwei Fingern zusammenzieht oder aufzieht |
| Drehen | jemand platzierte AR-Inhalte dreht |
Ziehen, Skalieren und Drehen funktionieren nur in Szenen vom Typ Oberfläche, weil sie auf Inhalte wirken, die der Besucher platziert hat. Sie werden immer wieder ausgelöst, solange sich der Finger bewegt, nicht nur einmal.
Lebenszyklus
| Im Editor | Wird ausgelöst, wenn |
|---|---|
| Start | die Szene startet; jedes Objekt erhält diesen Trigger |
| Größenänderung | sich die Größe des Fensters oder Bildschirms ändert |
| Pausieren | die App oder der Tab in den Hintergrund wechselt |
| Fortsetzen | die App oder der Tab wieder in den Vordergrund kommt |
| Sichtbarkeit | das Objekt ein- oder ausgeblendet wird |
Töne spielen weiter, wenn ein Besucher die App wechselt, es sei denn, Sie stoppen sie. Stoppen Sie sie bei Pausieren, zum Beispiel mit einem Wechsel in einen Zustand, in dem der Ton stumm ist, und starten Sie sie bei Fortsetzen wieder.
AR-Tracking
| Im Editor | Wird ausgelöst, wenn |
|---|---|
| Erkennung | der Marker oder die Fläche gefunden wird |
| Trackingverlust | das Tracking verloren geht |
| Platzieren | der Besucher den Inhalt platziert hat |
| VPS bereit | die Positionsbestimmung gestartet ist |
| VPS lokalisiert | die tatsächliche Position des Besuchers gefunden ist |
| VPS-Lokalisierung fehlgeschlagen | die Position noch nicht gefunden ist |
| VPS-Fehler | die Positionsbestimmung gar nicht laufen kann |
Der Editor bietet nur die Trigger an, die der Anker Ihrer Szene auslösen kann. Erkennung wird einmal ausgelöst, wenn das Tracking beginnt, nicht in jedem Frame.
VPS-Lokalisierung fehlgeschlagen wird oft ausgelöst, während der Besucher umhergeht und nach einer Stelle sucht, die die Karte kennt. Verstehen Sie es als „weiter versuchen“, nicht als Fehler, den Sie anzeigen müssen.
Zeit und Abstand
| Im Editor | Wird ausgelöst, wenn |
|---|---|
| Verzögerung | einmal, nach einer Wartezeit |
| Alle N Sekunden | immer wieder; eine Wiederholungszahl von 0 bedeutet endlos |
| Abstand | etwas näher als ein bestimmter Abstand kommt oder sich entfernt |
| Variablenänderung | eine Variable einen neuen Wert bekommt |
Abstand hat die Option Beim Start. Schalten Sie sie ein, wenn ein Objekt schon beim Öffnen der Szene nah sein kann. Ohne diese Option wartet das Ereignis, bis sich etwas bewegt.
Zustände, Kollisionen und Signale
| Im Editor | Wird ausgelöst, wenn |
|---|---|
| Aktivieren des Zustands | dieses Objekt in den gewählten Zustand wechselt |
| Deaktivieren des Zustands | dieses Objekt diesen Zustand verlässt |
| Kollision | dieses Objekt ein anderes berührt; mit Kollidiert mit schränken Sie ein, welche |
| UI-Aktion | jemand eine Schaltfläche auf einer UI-Karte gedrückt hat |
| Signal | ein anderes Ereignis ein Signal gesendet hat |
| Spielsteuerung | die Figur anfängt zu stehen, sich zu bewegen, zu laufen oder zu springen |
Zweige
Manche Trigger haben Zweige, sodass ein einziges Ereignis jeden Ausgang abdeckt. Ein einziges Ereignis Abstand kann zum Beispiel sowohl auf „kommt näher“ als auch auf „entfernt sich“ reagieren.
| Trigger | Zweige |
|---|---|
| Abstand | Bei Annäherung, Beim Entfernen |
| Taste | Beim Drücken, Beim Loslassen |
| Hover | Beim Betreten, Beim Verlassen |
| Druck auf das Objekt | Beim Klick, Beim Drücken, Beim Loslassen |
| Sichtbarkeit | Beim Einblenden, Beim Ausblenden |
| Spielsteuerung | Im Leerlauf, Bei Bewegung, Beim Laufen, Beim Sprung |
Jeder Zweig hat eine eigene Liste von Schritten. Ein Trigger ohne Zweige hat eine einzige Liste: Bei Auslösung.
Festlegen, auf welche Objekte ein Schritt wirkt
Jeder Schritt hat das Feld Zielobjekt.
- Lassen Sie es leer, dann wirkt der Schritt auf das Objekt, zu dem das Ereignis gehört. Das ist der Normalfall.
- Wählen Sie Objekte aus, dann wirkt der Schritt stattdessen auf diese. So öffnet eine Schaltfläche drei Türen.
Antippen erreicht auch übergeordnete Objekte
Ein Antippen, ein Hover oder eine Aktion auf einer Karte erreicht das Objekt und alle seine übergeordneten Objekte.
Sie können also ein Ereignis auf eine Gruppe legen, und es fängt das Antippen von allem darin ab. Sie müssen nicht dasselbe Ereignis auf vierzig Objekte kopieren.
Das bedeutet auch:
- „irgendwo auf dieses Panel tippen“ ist ein einziges Ereignis am Panel;
- wenn der Cursor zwischen zwei Kindobjekten desselben Elternobjekts wechselt, löst das beim Elternobjekt weder Betreten noch Verlassen aus, weil der Cursor es nie verlassen hat.
Manche Trigger funktionieren anders:
- Kollision wird nur bei den Objekten ausgelöst, die sich berührt haben.
- Taste, Scrollen, Größenänderung und Start betreffen kein einzelnes Objekt, deshalb erhält sie jedes Objekt.
Ereignisse, Patches und Skripte hören dieselben Taps, Tasten und Kollisionen. Ein paar Trigger kommen in Skripten unter anderen Namen an. Siehe Die ctx-API.
Wenn dasselbe Objekt in einem Ereignis und in einem Skript auf denselben Trigger reagiert, läuft die Reaktion doppelt. Wenn etwas zweimal ausgelöst wird, ist das fast immer der Grund.
Mehrere Tasten für ein Ereignis
„Springen mit Leertaste oder W“ ist ein Ereignis, nicht zwei. Klicken Sie in das Feld Taste und drücken Sie die erste Taste. Klicken Sie dann auf oder und drücken Sie die nächste. Fügen Sie so viele hinzu, wie Sie brauchen.
- Jede Taste in der Liste steht für sich. Eine Zusatztaste wie Strg gilt nur für die Taste, mit der sie zusammen gedrückt wurde.
- Die übrigen Einstellungen des Triggers, etwa Auto-Wiederholung, gelten für jede Taste in der Liste.
- Eine Maustaste funktioniert im selben Feld. Die Liste enthält dann nur Maustasten.
Das Ereignis speichert diese Tasten als Text. Ein Assistent oder ein Skript schreibt sie so:
ArrowUp ctrl+KeyW KeyA+KeyS Space+double mouse:middle
Statt einer Taste können Sie auch eine Tastenbelegung verwenden. Belegungen richten Sie unter Projekteinstellungen → Tastenbelegung ein. Ändern Sie dort einmal die Taste für „jump“, und jedes Ereignis, das „jump“ nutzt, übernimmt sie. Das hilft, wenn jemand eine Steuerung für Linkshänder möchte.
Schritte
Die Einstellungen jedes Schritts finden Sie in der Schritt-Referenz.
Links, Anrufe und Szenenwechsel
| Im Editor | Macht |
|---|---|
| Szenenübergang | wechselt zu einer anderen Szene |
| Raumübergang | wechselt in einen anderen Raum und, wenn Sie eine wählen, in eine bestimmte Szene |
| URL öffnen | öffnet einen Link, im selben oder in einem neuen Tab |
| Messenger öffnen | öffnet Facebook, VK, OK, Instagram, Telegram, WhatsApp oder Viber |
| Telefonnummer anrufen | startet einen Anruf |
| E-Mail schreiben | beginnt eine E-Mail |
| Datei-Download | lädt eine Datei aus Ihrem Projekt herunter |
| Kontakt herunterladen | bietet eine Kontaktkarte an, die aus den ausgefüllten Feldern entsteht |
Messenger öffnen braucht je nach App andere Angaben:
- eine Seiten-ID für Facebook, VK und OK;
- einen Benutzernamen für Instagram und Telegram;
- eine Telefonnummer für WhatsApp und Viber.
Objekte zeigen, ausblenden und ändern
| Im Editor | Macht |
|---|---|
| Objekt ein-/ausblenden | blendet die Zielobjekte ein oder aus; bei einer Szene macht er diese Szene aktiv |
| Zustand setzen | wechselt zu einem gespeicherten Zustand, weich, wenn Sie eine Dauer angeben |
| Eigenschaften überschreiben | setzt einmalig ein paar Werte, wie ein vorübergehender Zustand |
Animation
| Im Editor | Macht |
|---|---|
| Animation abspielen | spielt eine Animation aus der Zeitleiste ab, mit Schleifenmodus, Wiederholungen, Geschwindigkeit und Verzögerung |
| Animation stoppen | stoppt eine |
Animation abspielen kann eine Animation starten, die zu einem beliebigen Objekt gehört. So kann eine einzige Schaltfläche einen Ablauf starten, der mehrere Dinge gleichzeitig bewegt.
Um etwas zu verschieben, auszublenden oder umzufärben, legen Sie im Panel Animation eine Animation an und spielen sie dann mit diesem Schritt ab. Für eine einzelne Änderung reicht Zustand setzen mit einer Dauer.
Ältere Projekte können auch die Schritte Transformation, Deckkraft, Material, Knochen-Transformation und Eingebaute Animation enthalten. In diesen Projekten laufen sie weiter, aber der Editor bietet sie nicht mehr an. Material zum Beispiel blendet Farbe, Deckkraft, Leuchten und Oberflächeneinstellungen der Zielobjekte zu einem gespeicherten Material hin über und behält dabei Typ und Texturen jedes Slots.
Bewegung
| Im Editor | Macht |
|---|---|
| Objekt folgen | folgt dauerhaft einem anderen Objekt; Sie legen Abstand, Versatz, Glättung und Tempo fest |
| Objekt ansehen | dreht sich zu etwas hin, ohne sich von der Stelle zu bewegen |
| Folgen beenden | beendet das Folgen und das Hinsehen |
| Entlang des Pfads fliegen | bewegt sich entlang eines Pfads |
| Pfadflug beenden | beendet den Flug entlang des Pfads |
Logik
| Im Editor | Macht |
|---|---|
| Wenn — sonst | prüft eine Bedingung und führt dann eine von zwei Schrittlisten aus |
| Variable setzen | setzt eine Variable, addiert etwas dazu oder schaltet sie um |
| Signal senden | sendet ein Signal an die ausgewählten Objekte oder die ganze Szene |
| Warten, dann | wartet und führt dann die Schritte darin aus |
Zeiger
Zeiger sperren blendet den Mauszeiger aus und lässt die Szene seine Bewegung nutzen. Spiele aus der Ego-Perspektive brauchen das, damit der Zeiger das Fenster nicht verlässt. Zeiger freigeben gibt den Zeiger wieder frei.
Trigger und Schritte aus Plugins
Ein Plugin, das Ihrem Projekt hinzugefügt wurde, kann eigene Trigger und Schritte mitbringen. Sie erscheinen in den Listen unter dem Namen des Plugins, und Sie nutzen sie wie die eingebauten.
- Es gibt sie nur in Projekten, denen das Plugin hinzugefügt wurde.
- Ein Trigger eines Plugins kann Einstellungen haben. Das Ereignis läuft dann nur, wenn sie passen. Lassen Sie eine Einstellung leer, um jedes Mal zu reagieren.
- Wird das Plugin aus dem Projekt entfernt, werden seine Trigger nie ausgelöst und seine Schritte übersprungen.
Wie Sie eigene bauen, lesen Sie unter Laufzeitcode.
Bedingung hinzufügen
Eine Bedingung ist ein Schritt: Wenn — sonst. Sie können einen solchen Schritt in einen anderen setzen, um mehr als zwei Ausgänge zu bekommen.
Was der Schritt prüft, wählen Sie im Feld Bedingung:
| Im Editor | Prüft | Felder, die Sie ausfüllen |
|---|---|---|
| Immer | nichts; die Bedingung ist immer erfüllt | — |
| Variable | den Wert einer Variablen | Variable, Vergleich, Wert |
| Abstand | wie weit das Objekt dieses Ereignisses von einem anderen Objekt entfernt ist | Objekt, Vergleich, Schwelle |
| Zustand | in welchem Zustand ein anderes Objekt ist | Objekt, Zustand |
| Sichtbarkeit | ob etwas sichtbar ist | Objekt, Erwartet |
| Zufall | eine zufällige Wahrscheinlichkeit | Schwelle, in Prozent |
So werden Werte verglichen:
3wird als Zahl gelesen,trueals Ja/Nein, alles andere als Text.==und!=prüfen auf genaue Übereinstimmung.>,>=,<und<=vergleichen Zahlen.
Variablen, Signale und Timer
Variablen gelten für einen Besuch. Jedes Mal, wenn jemand Ihr Projekt öffnet, sind sie leer. Um ihnen Startwerte zu geben, setzen Sie sie in einem Ereignis mit dem Trigger Start. Ein Skript sieht dieselben Variablen als globale Variablen.
Signale lassen ein Ereignis andere starten, ohne dass Sie Schritte kopieren müssen. Zum
Beispiel können mehrere Ereignisse auf level-complete warten, und jedes Ereignis kann dieses
Signal senden. Wenn ein Signal sich immer wieder selbst auslöst, stoppt es nach acht Runden, damit
die Szene nicht einfriert.
Timer (Verzögerung und Alle N Sekunden) starten, wenn ihr Objekt eingeschaltet wird, und werden zurückgesetzt, wenn es ausgeschaltet wird. Wird das Objekt wieder eingeschaltet, beginnt die Zählung von vorn. Verpasste Takte werden nicht nachträglich auf einmal ausgelöst.
Zustände
Ein Zustand ist ein gespeichertes Aussehen eines Objekts: seine Position, Farbe, Sichtbarkeit und mehr. Der Schritt Zustand setzen wechselt zu diesem Zustand. Mit einer Dauer geschieht der Wechsel weich.
Nutzen Sie Zustände für einen Schalter, eine Hervorhebung oder eine Tür, die offen oder geschlossen ist.
Wenn einer der Zustände des Objekts ausgewählt ist, ändern Sie mit jeder Änderung am Objekt diesen Zustand. Beim Anlegen von Zuständen ist das genau richtig. Verwirrend wird es, wenn Sie vergessen haben, dass ein Zustand ausgewählt ist.
Mehr dazu unter Zustände.
Erneutes Tracking
In AR-Szenen hat jedes Ereignis einen Modus für erneutes Tracking. Er legt fest, was passiert, wenn der Marker verloren geht und wiedergefunden wird:
- die Schritte sofort neu starten;
- sie nie wieder starten;
- sie neu starten, sobald die laufenden Schritte fertig sind.
Weiter: Animation – Dinge in Bewegung bringen.