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.
Wyzwanie
ŚredniUzupełnij pięć stanów drzwi zamku w pliku DoorStates.cs; plik Door.cs zawiera funkcje pomocnicze.
- Locked:
door.PressedNear()zapisuje w loguLocked.Door.Unlock()zmienia stan zablokowanych drzwi naclosed. - Closed:
PressedNear()zmienia stan naopening. Opening: gdydoor.SlideTo(door.openY)zwróci wartość true, przejdź do stanuopen. - Open: po
door.stayOpensekundach przejdź do stanuclosing. - Closing:
PressedNear()ponownie otwiera drzwi; w przeciwnym razie, gdySlideTo(door.closedY)zwróci wartość true, przejdź do stanuclosed.
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()
{
}
}
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
1Komponenty, nie hierarchie
Małe komponentyBazowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPowtórka: modułowa wieżyczkaPowtórka: podwójne działo4Dane serializowane
Klasy serializowalneListy w InspectorzeEnumy w InspectorzePodsumowanie: tabela łupówPodsumowanie: losowanie łupów7Maszyny stanów
Stany jako klasyStan alarmowyMaszyna stanówPrzejściaMózgi przeciwnikówAtaki rycerzaPodsumowanie: stany drzwi2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPowtórka: klawisz interakcjiPowtórka: najbliższy w zasięgu5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaOcal wiatrFale jako danePowtórka: Baza przedmiotówPowtórka: Kupowanie w sklepie8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearestPoćwicz samodzielnie: Edytor online Unity