Zum Hauptinhalt springen

States

Ein State ist eine benannte Momentaufnahme von allem, was ein Objekt gerade ist: wo es steht, welche Farbe es hat, ob es sichtbar ist, welche Animation ausgewählt ist.

Schalten Sie auf einen State, und das Objekt wird wieder zu dieser Momentaufnahme. Das ist die ganze Funktion — und sie ersetzt erstaunlich viel handgeschriebene Logik.

Wann man danach greift

Sie wollenStates sind…
Einen Lichtschalter: an und ausgenau richtig
Eine Tür: zu, offen, verriegeltgenau richtig
Ein Produkt in drei Farbvariantengenau richtig
Eine Figur, die einen Pfad entlanggehtfalsch — das ist Animation
Etwas, das sich um einen berechneten Betrag ändertfalsch — das ist ein Patch oder ein Skript

Die Faustregel: eine feste Zahl benannter Situationen ist ein State. Alles Kontinuierliche ist eine Animation.

Sie bauen

Fügen Sie einem Objekt eine States-Komponente hinzu und dann einen State. Er hält das Objekt so fest, wie es gerade ist.

Für den nächsten: Fügen Sie einen zweiten State hinzu und ändern Sie das Objekt, während dieser State ausgewählt ist. Positionieren, umfärben, verbergen — der State nimmt mit, während Sie arbeiten.

Das ist der Teil, der Leute verwirrt

Solange ein State ausgewählt ist, bearbeitet das Ändern des Objekts die Momentaufnahme dieses States, nicht das Objekt selbst.

Genau das wollen Sie beim Bauen von States — und es ist gründlich verwirrend, wenn Sie vergessen hatten, dass ein State ausgewählt war, und sich wunderten, warum Ihre Änderung nach dem Umschalten „nicht geblieben" ist.

Zwischen ihnen umschalten

Aus einem Ereignis heraus nehmen Sie den Schritt Set state. Er nimmt den State und optional eine Dauer und ein Easing.

Mit einer Dauer läuft der Wechsel weich — das Objekt gleitet von dort, wo es ist, zur Momentaufnahme, statt zu springen. Dieses eine Feld macht aus einem State-Wechsel eine Animation, die Sie nicht schreiben mussten.

Woher Sie schaltenWie
Einem Ereignisdem Schritt Set state
Einem Patchdem Knoten set_states
Einem SkriptactiveStateId auf der States-Komponente schreiben

Auf einen Wechsel reagieren

Auf dem Objekt, dessen State sich geändert hat, feuern zwei Auslöser:

AuslöserFeuert, wenn
State activedas Objekt den gewählten State betreten hat
State inactivees ihn verlassen hat

Jedes Ereignis nennt, welchen State es beobachtet, ein Objekt kann also auf jeden seiner States anders reagieren. So spielt eine Tür beim Öffnen einen Ton und beim Schließen einen anderen — ganz ohne Bedingungen.

Sie feuern auf dem Objekt selbst, nicht auf seinen Eltern

Anders als ein Tippen wandert ein State-Wechsel nicht die Hierarchie hinauf.

Ein paar Dinge ändern, ohne einen State

Manchmal wollen Sie „wie jetzt, aber rot", ohne dafür einen ganzen State zu definieren. Dafür gibt es den Schritt Override properties: Er wendet einen einmaligen Satz Werte als temporären State an, mit derselben Dauer und demselben Easing.

Nehmen Sie ihn für einmalige Betonungen (ein Hervorheben beim Hovern, ein Aufblitzen bei Schaden) und heben Sie echte States für Situationen auf, die das Objekt tatsächlich hat.

Was ein State abdeckt

Eine Momentaufnahme hält die Komponenten des Objekts fest, also reisen Position, Rotation, Skalierung, Material, Sichtbarkeit und der Rest gemeinsam.

Ein State gehört zu einem Objekt

Er erfasst keine Kinder. Um eine Gruppe umzuschalten, geben Sie jedem Objekt eigene States und schalten sie aus einem Ereignis heraus um — die Ziele des Schritts nehmen eine Liste.

Wo sie Sie erwischen können

  • Ein im Editor ausgewählt gebliebener State saugt Ihre Änderungen still auf. Prüfen Sie, welcher aktiv ist, bevor Sie sich wundern, warum ein Objekt immer wieder zurückspringt.
  • States und Animation am selben Objekt streiten sich, wie zwei beliebige Animationsmechanismen. Wählen Sie einen.
  • Eine Komponente zu entfernen löscht sie aus jedem State, der sie enthielt.
  • Existiert der ausgewählte State nicht mehr, wird stattdessen der erste benutzt.

Weiter: Patches