HUD
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 46 z 50.
Wyzwanie
ŚredniHUD, który tylko nasłuchuje. Zachowaj wszystko z wcześniejszych lekcji. Canvas o nazwie HUD zawiera pasek zdrowia (HealthFill, obraz typu Filled), HealthText i WaveText, a także skrypt HUD, w którym w Inspectorze ustawiono hero, spawner, healthBar, healthText i waveText. HUD nigdy o nic nie pyta bohatera ani spawnera: ogłaszają swoje zmiany za pomocą zdarzeń C#, a HUD wyświetla to, co usłyszy.
Herootrzymujepublic event Action<int, int> HealthChanged, które jest wywoływane z wartością zdrowia imaxHealthwStartoraz za każdym razem, gdy trafienie lub leczenie zmienia poziom zdrowia.WaveSpawnerotrzymujepublic event Action<int> WaveStarted, które jest wywoływane z numerem fali, gdy fala się rozpoczyna.HUDsubskrybuje oba zdarzenia wOnEnablei anuluje subskrypcję wOnDisable. Po zdarzeniuHealthChangedwypełnia pasek proporcjonalnie do pozostałego zdrowia i wyświetla poziom zdrowia jakoHP 3/5. Po zdarzeniuWaveStartedwyświetlaWave 2. Nie ma metodyUpdate.
Wywołaj HealthChanged w Start, a nie w Awake: metoda OnEnable każdego obiektu uruchamia się przed metodą Start dowolnego obiektu, więc do tego czasu HUD już nasłuchuje. Naciśnij Play i obserwuj HUD podczas walki, a następnie kliknij Check.
Spróbuj swoich sił
using UnityEngine;
public class HUD : MonoBehaviour
{
// W późniejszej lekcji zostanie to uzupełnione: zdrowie i numer fali na ekranie.
}
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