Zum Hauptinhalt springen

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 ist so schnell wie Code

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​

  1. Öffnen Sie den Patch-Editor über die linke Leiste. Er zeigt den Graphen der Szene.
  2. Klicken Sie auf + Node hinzufügen und wählen Sie einen Node aus der Gruppe Ereignisse. Hier beginnt der Graph.
  3. Fügen Sie einen Node hinzu, der etwas tut, zum Beispiel einen, der eine Komponente ändert.
  4. Ziehen Sie eine Verbindung vom Puls-Ausgang des Ereignis-Nodes zum Puls-Eingang des anderen Nodes.
  5. Öffnen Sie das Panel Code und prüfen Sie Ihren Graphen als Code.

Arten von Nodes​

ArtWoran Sie sie erkennenWas sie tut
Ereignisnur Ausgänge, einer davon ein Pulsstartet den Graphen: beim Start, beim Antippen, in jedem Frame
Effektein Puls rein, ein Puls raustut etwas, der Reihe nach
Steuerungteilt den Puls auf oder wiederholt ihnVerzweigung, Tor, Wiederholung, For-each, einmalig, Verzögerung
Datengar keine Pulseliefert 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.
Rotations-Ports arbeiten in Grad

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​

GruppeWas Sie dort finden
Ereignisse30 Startpunkte: Start, Frame, Antippen, Tasten, Kollisionen, Tracking
Komponentenjede Komponente lesen und ändern
Mathematik, Vektoren, Logik, ZeichenkettenRechnen, Vergleiche, Vektoren und Text
AblaufVerzweigung, Tor, Wiederholung, For-each, einmalig, Verzögerung, Sequenz
ZustandZähler, Umschalter, Timer, Glätten
Entitäten, LebenszyklusObjekte finden, erstellen, erzeugen und zerstören
PhysikImpulse, Kräfte, Geschwindigkeit, Raycast
MehrspielerSenden, Empfangen, gemeinsamer Zustand, Erzeugen
Globale, Variablen, NachrichtenWerte, die Sie mit anderen Patches und Skripten teilen
Oberflächedie Variablen einer UI-Karte lesen und ändern
Funktioneneinen 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 gebautSie bekommen
keine Eingangs- oder Ausgangs-Nodesein Verhalten: hineinziehen, und es läuft, ganz ohne Verbindungen
Eingänge, Ausgänge und einen Puls-Eingangeinen Schritt: er läuft, wenn der Puls ankommt, danach stehen seine Ausgänge bereit
Eingänge und Ausgänge, aber keinen Pulseine 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.

Ein Funktions-Patch hat kein eigenes Objekt

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-GruppeGeteilt mit
Variablenden Nodes genau dieses Patches
Globaleallen Patches, Skripten und Ereignissen im Projekt
Nachrichtenallen, 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.