Menu
CoddyTech

Wiederholung: Türzustände

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 32 von 50.

challenge icon

Aufgabe

Mittel

Eine 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 nur Locked aus. 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 speed nach oben, bis ihr y-Wert openY erreicht; dann ist sie Open.
  • Open: Nach stayOpen Sekunden beginnt sie sich zu schließen.
  • Closing: Die Tür fährt mit speed nach unten, bis ihr y-Wert closedY erreicht; 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