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 wollen | States sind… |
|---|---|
| Einen Lichtschalter: an und aus | genau richtig |
| Eine Tür: zu, offen, verriegelt | genau richtig |
| Ein Produkt in drei Farbvarianten | genau richtig |
| Eine Figur, die einen Pfad entlanggeht | falsch — das ist Animation |
| Etwas, das sich um einen berechneten Betrag ändert | falsch — 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.
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 schalten | Wie |
|---|---|
| Einem Ereignis | dem Schritt Set state |
| Einem Patch | dem Knoten set_states |
| Einem Skript | activeStateId auf der States-Komponente schreiben |
Auf einen Wechsel reagieren
Auf dem Objekt, dessen State sich geändert hat, feuern zwei Auslöser:
| Auslöser | Feuert, wenn |
|---|---|
| State active | das Objekt den gewählten State betreten hat |
| State inactive | es 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.
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.
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