Patches
Mit Patches bauen Sie Logik aus Nodes und Verbindungen, statt Code zu schreiben. Greifen Sie zu einem Patch, wenn ein Ereignis nicht mehr ausreicht.
Ein Patch liegt zwischen Ereignissen und Skripten:
- Ereignisse sind einfach, können sich aber keinen Wert merken und nicht rechnen.
- Skripte können alles, aber Sie müssen Code schreiben.
Probieren Sie einen Patch, sobald Sie zum ersten Mal „…aber nur, wenn der Punktestand über zehn liegt“ oder „…jedes Mal ein Stück weiter bewegen“ brauchen.
Ein Patch läuft genauso schnell wie von Hand geschriebener Code. Im Panel Code sehen Sie ihn jederzeit als Code. Das ist auch der schnellste Weg zu prüfen, ob ein Graph das tut, was Sie meinen.
Alle Nodes und ihre Ports finden Sie in der Patch-Node-Referenz: 203 Nodes in 24 Kategorien.
Patch bauen
- Öffnen Sie den Patch-Editor über die linke Leiste. Er zeigt den Graphen der Szene.
- Klicken Sie auf + Node hinzufügen und wählen Sie einen Node aus der Gruppe Ereignisse. Hier beginnt der Graph.
- Fügen Sie einen Node hinzu, der etwas tut, zum Beispiel einen, der eine Komponente ändert.
- Ziehen Sie eine Verbindung vom Puls-Ausgang des Ereignis-Nodes zum Puls-Eingang des anderen Nodes.
- Öffnen Sie das Panel Code und prüfen Sie Ihren Graphen als Code.
Arten von Nodes
| Art | Woran Sie sie erkennen | Was sie tut |
|---|---|---|
| Ereignis | nur Ausgänge, einer davon ein Puls | startet den Graphen: beim Start, beim Antippen, in jedem Frame |
| Effekt | ein Puls rein, ein Puls raus | tut etwas, der Reihe nach |
| Steuerung | teilt den Puls auf oder wiederholt ihn | Verzweigung, Tor, Wiederholung, For-each, einmalig, Verzögerung |
| Daten | gar keine Pulse | liefert einen Wert: eine Zahl, eine Summe, das Feld einer Komponente |
Die Verbindung für den Puls legt fest, in welcher Reihenfolge etwas passiert. Im Editor heißt dieser Port Signal. Folgen Sie ihr von einem Ereignis-Node aus, um den Ablauf zu lesen. Datenverbindungen transportieren nur Werte. Sie haben keine Reihenfolge.
Ports und Verbindungen
Jeder Port hat einen Typ: Zahl, Boolean, Text, Vektor, Farbe oder Objekt. Ports mit unterschiedlichen Typen lassen sich nicht verbinden. So fallen viele Fehler auf, bevor Sie überhaupt etwas ausführen.
Ein Vektor-Port lässt sich in x, y und z aufklappen. Sie können einen davon verbinden und
die anderen beiden eintippen.
Ein Eingang ohne Verbindung nutzt den Wert, den Sie in den Node eingetippt haben. Verbinden Sie also nur die Teile, die sich ändern.
Festlegen, welches Objekt ein Node nutzt
Komponenten-Nodes wie „Transform lesen“ oder „Material setzen“ müssen wissen, mit welchem Objekt sie arbeiten.
- Lassen Sie das Objekt leer, dann nutzt der Node dieses Objekt: das Objekt, an dem der Patch hängt.
- Legen Sie ein Objekt fest, dann arbeitet der Node stattdessen mit diesem Objekt.
Zwei Dinge machen das einfacher:
- Lese-Nodes brechen nicht ab. Liest ein Node eine Komponente, die das Objekt nicht hat, bekommen Sie nichts zurück, und der Graph läuft weiter.
- Setz-Nodes ändern nur, was Sie ausgefüllt haben. Alles andere bleibt, wie es war.
Das passt zu allem anderen, was Sie im Editor sehen. Skripte arbeiten in Radiant. Rechnen Sie also um, wenn Sie eine Rotation zwischen Patch und Skript weitergeben.
Was im Node-Menü steht
| Gruppe | Was Sie dort finden |
|---|---|
| Ereignisse | 30 Startpunkte: Start, Frame, Antippen, Tasten, Kollisionen, Tracking |
| Komponenten | jede Komponente lesen und ändern |
| Mathematik, Vektoren, Logik, Zeichenketten | Rechnen, Vergleiche, Vektoren und Text |
| Ablauf | Verzweigung, Tor, Wiederholung, For-each, einmalig, Verzögerung, Sequenz |
| Zustand | Zähler, Umschalter, Timer, Glätten |
| Entitäten, Lebenszyklus | Objekte finden, erstellen, erzeugen und zerstören |
| Physik | Impulse, Kräfte, Geschwindigkeit, Raycast |
| Mehrspieler | Senden, Empfangen, gemeinsamer Zustand, Erzeugen |
| Globale, Variablen, Nachrichten | Werte, die Sie mit anderen Patches und Skripten teilen |
| Oberfläche | die Variablen einer UI-Karte lesen und ändern |
| Funktionen | einen anderen Patch oder ein Skript aufrufen |
Patch wiederverwenden
Speichern Sie einen Graphen als Patch in den Assets Ihres Projekts, dann können Sie ihn auf andere Arbeitsflächen ziehen. Was Sie bekommen, hängt davon ab, wie Sie ihn gebaut haben:
| Sie haben gebaut | Sie bekommen |
|---|---|
| keine Eingangs- oder Ausgangs-Nodes | ein Verhalten: hineinziehen, und es läuft, ganz ohne Verbindungen |
| Eingänge, Ausgänge und einen Puls-Eingang | einen Schritt: er läuft, wenn der Puls ankommt, danach stehen seine Ausgänge bereit |
| Eingänge und Ausgänge, aber keinen Puls | eine Funktion: ihre Ausgänge werden dort berechnet, wo sie gelesen werden |
Die Anschlüsse des Patches entstehen aus den Eingangs- und Ausgangs-Nodes darin. Fügen Sie einen hinzu, erscheint er überall, wo der Patch verwendet wird. Wenn Sie den Patch bearbeiten, wird alles, was ihn nutzt, sofort aktualisiert.
Innerhalb einer Funktion gibt es kein „dieses Objekt“. Objekt- und Komponenten-Nodes funktionieren dort deshalb nicht. Nutzen Sie Funktionen für Daten, Rechnungen und Logik. Die Arbeit in der Szene erledigt der Patch, der die Funktion aufruft.
Patches können auch Skripte aufrufen. So erledigen Sie normalerweise Dinge, für die es keinen Node gibt.
Werte zwischen Durchläufen behalten
Es gibt drei Wege, einen Wert zu behalten. Sie unterscheiden sich darin, wer ihn sehen kann:
| Node-Gruppe | Geteilt mit |
|---|---|
| Variablen | den Nodes genau dieses Patches |
| Globale | allen Patches, Skripten und Ereignissen im Projekt |
| Nachrichten | allen, die zuhören, als einmalige Mitteilung, die über ihren Namen gesendet wird |
Globale Werte gibt es in zwei Arten:
- mit dem Bereich Projekt behalten sie ihren Wert, wenn der Besucher zwischen Räumen wechselt;
- mit dem Bereich Raum beginnen sie in jedem Raum von vorn.
Die Namen von Variablen, globalen Werten und Nachrichten tippen Sie ein, statt sie zu verbinden.
Eine Zeile JavaScript schreiben
Zwei Nodes nehmen JavaScript direkt an:
- Ausdruck (
expression) gibt einen Wert zurück. - Aktion (
action) führt Anweisungen aus.
Darin können Sie alles nutzen, was auch ein Skript kann.
Nutzen Sie sie für eine kleine Sache, für die es keinen Node gibt. Wenn Sie darin viel Code schreiben, schreiben Sie lieber ein Skript und rufen es aus dem Graphen auf.
Wenn etwas nicht funktioniert
Öffnen Sie das Panel Code. Wenn im Graphen etwas nicht stimmt, sehen Sie das Problem dort. Zwei häufige Ursachen sind eine Schleife in den Datenverbindungen und fehlerhaftes JavaScript in einem Node Aktion.
Ein fehlerhafter Patch hält die Szene nicht an. Ihre anderen Patches laufen weiter.
Weiter: Spielsteuerung – Besucher herumlaufen lassen.