Menu
CoddyTech

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.

challenge icon

Aufgabe

Mittel

Vervollständige die fünf Zustände der Burgtür in DoorStates.cs; Door.cs enthält die Hilfsmethoden.

  1. Locked: door.PressedNear() gibt Locked im Log aus. Door.Unlock() ändert den Zustand einer verschlossenen Tür zu closed.
  2. Closed: PressedNear() wechselt zu opening. Opening: Sobald door.SlideTo(door.openY) true ist, wechselt der Zustand zu open.
  3. Open: Nach door.stayOpen Sekunden wechselt der Zustand zu closing.
  4. Closing: PressedNear() öffnet die Tür wieder; andernfalls wechselt der Zustand zu closed, sobald SlideTo(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()
    {
    }
}
quiz iconTeste dich selbst

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

Übe selbstständig: Unity-Playground