Menu
CoddyTech

Podsumowanie: stany drzwi

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

challenge icon

Wyzwanie

Średni

Drzwi 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 logu Locked. 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 stayOpen sekundach 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