Rückblick: Türzustände
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 41 von 64.
In diesem Kapitel erhielt jeder Zustand eine eigene Klasse. Sie wurden mit einer StateMachine ausgeführt, und jeder Zustand entschied selbst, wie er verlassen wird. Die Tür vereint diese drei Dinge.
Aufgabe
MittelVervollständige die fünf Zustände der Burgtür in DoorStates.cs; Door.cs enthält die Hilfsmethoden.
- Locked:
door.PressedNear()gibtLockedim Log aus.Door.Unlock()ändert den Zustand einer verschlossenen Tür zuclosed. - Closed:
PressedNear()wechselt zuopening. Opening: Sobalddoor.SlideTo(door.openY)true ist, wechselt der Zustand zuopen. - Open: Nach
door.stayOpenSekunden wechselt der Zustand zuclosing. - Closing:
PressedNear()öffnet die Tür wieder; andernfalls wechselt der Zustand zuclosed, sobaldSlideTo(door.closedY)erreicht ist.
Drücke auf „Spielen“, hol dir den Schlüssel und öffne die Tür. Drücke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class LockedState : IState
{
private Door door;
public LockedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosedState : IState
{
private Door door;
public ClosedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpeningState : IState
{
private Door door;
public OpeningState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpenState : IState
{
private Door door;
public OpenState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosingState : IState
{
private Door door;
public ClosingState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basis-GegnerskriptAbstrakte KomponentenZusammenwirkende KomponentenRückblick: Modulares GeschützRückblick: Zwillingskanone4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-TabelleRückblick: Beute auswürfeln7Zustandsautomaten
Zustände als KlassenDer AlarmzustandEin ZustandsautomatÜbergängeGegner-KIDer Ritter greift anRückblick: Türzustände2Schnittstellen in Unity
IDamageableSchnittstellen und TryGetComponentGetComponentsZusammenfassung: InteraktionstasteZusammenfassung: Nächstes in Reichweite5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenDen Wind speichernWellen als DatenRückblick: Item-DatenbankRückblick: Im Shop einkaufen8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearestÜbe selbstständig: Unity-Playground