Podsumowanie: stany drzwi
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 32 z 50.
Wyzwanie
ŚredniDrzwi zamku z zamkiem. Strzałki poruszają graczem, a złoty klucz wywołuje door.Unlock(), gdy gracz go podniesie (oba elementy są już gotowe). IState i StateMachine z tego rozdziału są już w projekcie. Door.cs zawiera wartości z Inspektora (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), pole machine i metodę PlayerNear(). Nadaj drzwiom pięć stanów jako klasy w pliku DoorStates.cs o nazwach LockedState, ClosedState, OpeningState, OpenState i ClosingState:
- Drzwi zaczynają jako Locked. Naciśnięcie spacji w ich pobliżu (
PlayerNear()) tylko zapisuje w loguLocked.Unlock()zmienia stan zamkniętych drzwi zablokowanych na Closed i nie robi nic w żadnym innym stanie. - Closed: naciśnięcie spacji w pobliżu drzwi rozpoczyna ich otwieranie.
- Opening: drzwi unoszą się z prędkością
speed, aż ich współrzędna y osiągnie wartośćopenY, a następnie przechodzą w stan Open. - Open: po
stayOpensekundach drzwi zaczynają się zamykać. - Closing: drzwi opuszczają się z prędkością
speed, aż ich współrzędna y osiągnie wartośćclosedY, a następnie przechodzą w stan Closed. Naciśnięcie spacji w ich pobliżu podczas opuszczania ponownie je otwiera, począwszy od aktualnego położenia.
Naciśnij Play, spróbuj otworzyć zablokowane drzwi, zdobądź klucz, otwórz drzwi i przejdź przez nie, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
// LockedState, ClosedState, OpeningState, OpenState i ClosingState
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest