Menu
CoddyTech

Podsumowanie: stany drzwi

Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 41 z 64.

W tym rozdziale każdy stan otrzymał własną klasę, wszystkie stany były uruchamiane za pomocą jednej maszyny stanów, a każdy stan sam decydował, jak z niego wyjść. Drzwi łączą te trzy elementy.

challenge icon

Wyzwanie

Średni

Uzupełnij pięć stanów drzwi zamku w pliku DoorStates.cs; plik Door.cs zawiera funkcje pomocnicze.

  1. Locked: door.PressedNear() zapisuje w logu Locked. Door.Unlock() zmienia stan zablokowanych drzwi na closed.
  2. Closed: PressedNear() zmienia stan na opening. Opening: gdy door.SlideTo(door.openY) zwróci wartość true, przejdź do stanu open.
  3. Open: po door.stayOpen sekundach przejdź do stanu closing.
  4. Closing: PressedNear() ponownie otwiera drzwi; w przeciwnym razie, gdy SlideTo(door.closedY) zwróci wartość true, przejdź do stanu closed.

Naciśnij „Graj”, zdobądź klucz i otwórz drzwi. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Architektura gier w Unity

Poćwicz samodzielnie: Edytor online Unity