Menu
CoddyTech

Wzmocnienia

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

challenge icon

Wyzwanie

Średni

Wzmocnienia. Zachowaj wszystko z wcześniejszych lekcji. Na arenie leżą serce i tarcza, a prefabrykaty Heart i Shield są gotowe do upuszczenia przez fale. Wszystko, co bohater może podnieść, implementuje jeden interfejs, więc bohater nie musi znać poszczególnych rodzajów przedmiotów.

  • IPickup deklaruje jedną metodę: void Collect(Hero hero);.
  • Heart implementuje ten interfejs, a wartość amount (2) pobiera z Inspektora: leczy bohatera o amount i niszczy sam siebie.
  • Shield implementuje ten interfejs, a wartość duration (5) pobiera z Inspektora: chroni bohatera przed każdym trafieniem przez duration sekund i niszczy sam siebie.
  • Hero otrzymuje metodę public void Heal(int amount), która zwiększa zdrowie, ale nigdy ponad maxHealth, i zapisuje zdrowie w logu tak jak przy otrzymaniu trafienia; poległy bohater nie może zostać uleczony. Otrzymuje też metodę public void Protect(float seconds), która chroni go przed trafieniami do upływu seconds sekund od teraz, tak jak robi to safeTime przy trafieniu. Otrzymuje także metodę OnTriggerEnter: gdy dotknięty obiekt ma komponent IPickup, wywołuje na nim Collect(this). CharacterController odbiera komunikaty o wyzwalaczach bez Rigidbody.
  • Każda fala Wave otrzymuje pole public GameObject reward. Inspektor nie może wyświetlić pola typu interfejsu, więc pole przechowuje prefabrykat jako GameObject. Po pokonaniu fali, przed przerwą, spawner upuszcza nagrodę tej fali, jeśli ją ma, we własnej pozycji na środku areny. Zasób przypisuje falę 1 do Heart, a falę 2 do Shield.

Naciśnij Play, pokonaj falę i podnieś jej nagrodę, a następnie naciśnij Check.

Spróbuj swoich sił

// W późniejszej lekcji zostanie to uzupełnione: wszystko, co bohater może podnieść.
public interface IPickup
{
}

Wszystkie lekcje w sekcji Architektura gier w Unity