Event
Ein Moment, in dem etwas passiert, zum Beispiel ein Tastendruck, ein Betreten oder ein Aufprall. Das Spiel reagiert genau dann, statt in jedem Frame nachzusehen.
Kurz
Ein Event ist ein Zeitpunkt: Eine Taste wird gedrückt, die Spielfigur betritt eine Zone, zwei Objekte stoßen zusammen. Darauf lässt sich eine Reaktion hängen: Dann öffnet sich die Tür, dann spielt ein Ton.
Ein Event dauert nicht. Was dauert, ist ein Zustand: „Taste wird gedrückt“ ist ein Event, „Taste ist unten“ ist ein Zustand.
Genauer
Ein Spiel kann auf zwei Arten mitbekommen, dass etwas passiert:
| Art | wie | Beispiel |
|---|---|---|
| Nachsehen | in jedem Frame in Update fragen | „Ist die Spielfigur schon nah genug?“ |
| Event | die Engine meldet sich, wenn es passiert | Unity ruft OnTriggerEnter auf, sobald etwas die Zone betritt |
Viele Methoden in Unity-Skripten sind solche Meldungen. Unity nennt sie Event Functions: Start() einmal vor dem ersten Update(), OnTriggerEnter() beim Betreten eines Triggers, OnCollisionEnter() beim Aufprall (siehe Kollision).
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player")) // eine Bedingung filtert das Event
tuer.SetActive(false);
}
Daneben gibt es Events, die sich im Inspector verdrahten lassen (UnityEvent). Ein UI-Button hat zum Beispiel die Liste On Click (): Dort wird eingetragen, was beim Klick passieren soll, ganz ohne Code.
In Unity sehen
Im Kit beginnt jede Kette mit einem Auslöser-Knoten: Start, Taste, Zone, Zusammenstoß, Benutzen. Er feuert ein Event; die Drähte tragen es weiter zu Wenn, Warten oder einer Aktion. Im laufenden Spiel zeigt der Graph, wann ein Event durchläuft.
Weiterlesen
- Unity Manual: Event functions – welche Methoden Unity wann aufruft (Unity 6.3, englisch).
- Unity Manual: Inspector-configurable custom events –
UnityEventim Inspector verdrahten. - Game Programming Patterns: Observer – Robert Nystrom erklärt, wie ein Teil des Spiels Bescheid gibt, ohne zu wissen, wer zuhört. Mit Beispiel aus einem Achievement-System (englisch).
- Ryan Hipple: Game Architecture with Scriptable Objects – Vortrag auf der Unite Austin 2017, rund eine Stunde. Baut Events als Assets im Projekt; für später, wenn ein Projekt wächst (englisch).