Zum Hauptinhalt springen

Patches

Ein Patch ist Verhalten, das Sie zeichnen. Er sitzt sauber zwischen Ereignissen, die einfach sind, aber keinen Wert halten und nicht rechnen können, und Skripten, die alles können, aber verlangen, dass Sie Code schreiben.

Greifen Sie zum Patch, sobald Sie sich zum ersten Mal „…aber nur, wenn der Punktestand über zehn ist" oder „…jedes Mal ein Stück weiter bewegen" wünschen.

Ihr Graph wird zu einem echten Skript

Patches werden kompiliert, nicht interpretiert, sie laufen also genau so schnell wie handgeschriebener Code. Das erzeugte Skript können Sie jederzeit im Code-Panel lesen — was zugleich der schnellste Weg ist zu prüfen, ob ein Graph tut, was Sie meinten.

Jeder Knoten mit seinen Ports: Patch-Knoten-Referenz — 203 Knoten in 24 Kategorien.

Vier Arten von Knoten

ArtWoran Sie sie erkennenWas sie ist
Eventnur Ausgänge, einer davon ein Pulswo der Graph beginnt — beim Start, beim Tippen, jedes Bild
Effectein Puls hinein und einer hinaustut etwas, der Reihe nach
Controlteilt oder wiederholt den PulsVerzweigung, Gate, Wiederholung, For-Each, Once, Verzögerung
Datagar keine Pulseein Wert — eine Zahl, eine Summe, das Feld einer Komponente

Der Puls-Draht ist die Reihenfolge, in der Dinge geschehen. Folgen Sie ihm von einem Ereignisknoten aus, und Sie lesen die Abfolge. Datendrähte tragen nur Werte; sie haben keine Reihenfolge.

Ports und Drähte

Ports sind typisiert (Zahl, Boolean, Zeichenkette, Vektor, Farbe, Objekt), und unpassende Typen verbinden sich nicht — das fängt eine Menge Fehler ab, bevor überhaupt etwas läuft.

Ein Vektor-Port klappt in x, y und z auf, Sie können also einen verdrahten und die anderen beiden eintippen.

Ein unverbundener Eingang benutzt den Wert, den Sie in den Knoten getippt haben. Das ist meist genau das Richtige: verdrahten Sie nur die Teile, die sich ändern.

Einem Knoten sagen, welches Objekt er meint

Komponentenknoten („get transform", „set material") müssen wissen, welches Objekt.

Lassen Sie die Bindung leer, meint sie dieses Objekt — das, an dem der Patch hängt. Setzen Sie sie, arbeitet der Knoten stattdessen an jenem Objekt.

Zwei Annehmlichkeiten, die man kennen sollte:

  • Get-Knoten sind nachsichtig. Eine Komponente zu lesen, die das Objekt nicht hat, liefert nichts, statt den Graphen zu zerreißen.
  • Set-Knoten schreiben nur, was Sie ausgefüllt haben. Alles, was Sie in Ruhe gelassen haben, bleibt, wie es war.
Rotations-Ports sind in Grad

Passend zu allem anderen, was Sie sehen können. Denken Sie nur daran, wenn Sie Werte zwischen einem Patch und einem Skript übergeben, wo Rotation in Bogenmaß ist.

Was im Katalog steht

KategorieWas Sie dort finden
events30 Startpunkte — Start, Bild, Tippen, Tasten, Kollisionen, Tracking
componentsjede Komponente lesen und schreiben
math · vector · logic · stringArithmetik, Vergleiche, Vektoren, Text
flowVerzweigung, Gate, Wiederholung, For-Each, Once, Verzögerung, Sequenz
stateZähler, Umschalter, Timer, Glättung
entities · lifecycleObjekte finden, erzeugen, spawnen, zerstören
physicsImpulse, Kräfte, Geschwindigkeit, Raycast
netMehrspieler — senden, empfangen, geteilter Zustand, spawnen
globals · variables · messagingWerte, die mit anderen Patches und Skripten geteilt werden
uidie Variablen einer Interface-Karte lesen und schreiben
functionseinen anderen Patch oder ein Skript aufrufen

Einen Patch wiederverwenden

Speichern Sie einen Graphen als Ressource, und Sie können ihn auf andere Flächen ziehen. Wie er sich verhält, hängt davon ab, wie Sie ihn gebaut haben:

Sie haben gebautSie bekommen
keine Ein- oder Ausgangsknotenein Verhalten — hineinziehen und es läuft, ohne Verdrahtung
Eingänge, Ausgänge und einen Pulseingangeinen Schritt — er läuft, wenn der Puls eintrifft, danach sind die Ausgänge bereit
Eingänge und Ausgänge, keinen Pulseine Funktion — ihre Ausgänge werden dort berechnet, wo sie gelesen werden

Ihre Buchsen stammen von den Ein- und Ausgangsknoten, die Sie hineingelegt haben: Einen hinzuzufügen lässt ihn bei jedem Aufrufer erscheinen. Bearbeiten Sie den Patch, und alles, was ihn aufruft, aktualisiert sich live.

Ein Funktions-Patch hat kein eigenes Objekt

In einer reinen Funktion gibt es kein „dieses Objekt", Objekt- und Komponentenknoten gehören dort also nicht hin. Halten Sie Funktionen bei Daten, Mathematik und Logik und erledigen Sie die Szenenarbeit beim Aufrufer.

Patches können auch Skripte aufrufen — der übliche Weg, an etwas heranzukommen, das der Katalog nicht abdeckt.

Werte, die den Graphen überdauern

Drei Wege, etwas zu behalten, unterschiedlich weit reichend:

SpeicherGeteilt mit
variablesden Knoten dieses einen Patches
globalsjedem Patch, Skript und Ereignis im Projekt
messagesallen, die zuhören, als einmalige Benachrichtigung nach Namen

Globals gibt es in zwei Geltungsbereichen: projektweit (sie überleben den Wechsel zwischen Spaces) und nur für den Space (sie beginnen frisch). Namen werden eingetippt statt verdrahtet, was das Routing vorhersagbar hält.

Die Notluke

Zwei Knoten nehmen JavaScript direkt entgegen: expression liefert einen Wert, action führt Anweisungen aus. Alles, was ein Skript erreichen kann, ist darin verfügbar.

Sie sind für die eine kleine Sache da, die dem Katalog fehlt — nicht als Lebensweise. Wenn Sie merken, dass Sie viel darin schreiben, schreiben Sie ein Skript und rufen es aus dem Graphen auf.

Wenn etwas nicht stimmt

Öffnen Sie das Code-Panel. Ein Graph, der nicht kompiliert — eine Schleife in den Datendrähten, kaputtes JavaScript in einem Action-Knoten — sagt es Ihnen dort.

Und ein kaputter Patch reißt nie die Szene mit sich: Die anderen laufen weiter.


Weiter: Spielsteuerungen — lassen Sie Leute umherlaufen.