Wiederholung: Türzustände
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 32 von 50.
Aufgabe
MittelEine Burgtür mit einem Schloss. Mit den Pfeiltasten bewegst du den Player, und der goldene Key ruft door.Unlock() auf, wenn der Spieler ihn aufhebt (beides ist bereit). IState und die StateMachine aus diesem Kapitel befinden sich im Projekt. Door.cs enthält die Werte im Inspector (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), ein Feld machine und PlayerNear(). Gib der Tür fünf Zustände als Klassen in DoorStates.cs mit den Namen LockedState, ClosedState, OpeningState, OpenState und ClosingState:
- Die Tür beginnt im Zustand Locked. Die Leertaste in ihrer Nähe (
PlayerNear()) gibt nurLockedaus.Unlock()versetzt eine verriegelte Tür in den Zustand Closed und tut in jedem anderen Zustand nichts. - Closed: Die Leertaste in der Nähe der Tür setzt den Öffnungsvorgang in Gang.
- Opening: Die Tür fährt mit
speednach oben, bis ihr y-WertopenYerreicht; dann ist sie Open. - Open: Nach
stayOpenSekunden beginnt sie sich zu schließen. - Closing: Die Tür fährt mit
speednach unten, bis ihr y-WertclosedYerreicht; dann ist sie Closed. Wird auf dem Weg nach unten die Leertaste in ihrer Nähe gedrückt, öffnet sie sich wieder von ihrer aktuellen Position aus.
Drücke Play, probiere die verriegelte Tür aus, hole den Schlüssel, öffne die Tür und gehe hindurch. Klicke dann auf Check.
Probier es selbst
using UnityEngine;
// LockedState, ClosedState, OpeningState, OpenState und ClosingState
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basisskript für GegnerAbstrakte KomponentenKomponenten im ZusammenspielRückblick: Modularer Geschützturm4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-Tabelle7Zustandsautomaten
Zustände als KlassenEin ZustandsautomatÜbergängeGegner-KIWiederholung: Türzustände10Projekt: Arena-Überlebenskampf
Der HeldGegnertypen2Interfaces in Unity
IDamageableInterfaces und TryGetComponentGetComponentsRückblick: Interaktionstaste5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenWellen als DatenRückblick: Item-Datenbank8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearest