Akcje Blueprints w HUD
Schematy mają funkcję o nazwie „Event Dispatcher”, która pozwala na rodzaj komunikacji między planami klas a schematem poziomu. W tym artykule zmodyfikujemy przykład użyty w poprzednim artykule i stworzymy schemat przedstawiający detonator, który będzie odpowiedzialny za zainicjowanie eksplozji.
Schemat „Detonator”, który stworzymy w tym artykule, zawiera zmienną „Czas” z czasem pozostałym do wybuchu. Kiedy aktor dotknie planu, zostanie on aktywowany i rozpocznie się odliczanie do wybuchu. Gdy zmienna „Czas” ma wartość zero, schemat „Detonator” wygeneruje zdarzenie o nazwie „Detonacja” za pomocą Event Dispatcher .
To kończy misję planu „Detonator”. Schemat „Detonatora” nie odpowiada za sposób, w jaki nastąpi eksplozja. W ten sposób mamy plan, który można wykorzystać w różnych sytuacjach.
Eksplozja jest tworzona na schemacie poziomu, gdy generowane jest zdarzenie „Detonacja” schematu „Detonator”. Stwórz nowy schemat o nazwie „Detonator” oparty na klasie Actor. Dodaj te dwie zmienne:
– Czas : typ całkowity, edytowalna i domyślna wartość 10.- Aktywny : typ Boolean, nie można go edytować i domyślna wartość to „false” (niezaznaczona).
Przejdź do trybu Komponenty. Schemat „Detonatora” jest wizualnie reprezentowany przez dwa komponenty: ramkę i renderowanie tekstu. Kliknij przycisk „Dodaj komponent” i najpierw wybierz „Pudełko”, a następnie „Renderowanie tekstu”:
Kliknij utworzony komponent Box i odznacz opcję „Ukryty w grze” w kategorii „Rendering”, aby pojawił się w trakcie gry.
Kliknij utworzony składnik TextRender i zmień jego nazwę na „ Wyświetl ”. W kategorii „Tekst” we właściwości „Wyrównanie w poziomie” wybierz „Środek”. We właściwości „Kolor renderowania tekstu” wybierz kolor czerwony, jak na poniższym obrazku:
Plan będzie wyglądał następująco:
Wyświetlana wartość 10 została uzyskana ze zmiennej “Czas” w Skrypcie Konstrukcji :

Przełącz się do trybu wykresu i utwórz nowy „EventDispatcher” o nazwie „Detonate”:
Detonator zostanie aktywowany, gdy ktoś go dotknie, więc wykorzystamy wydarzenie „Actor Begin Overlap”. Zmienna „Aktywny” jest używana, aby detonator był aktywowany tylko raz. Wykorzystuje także licznik czasu i zdarzenie niestandardowe, które jest odpowiedzialne za odliczanie detonatora. Scenariusz wyglądał następująco:
Funkcja „Set Timer Delegate” jest po prostu odmianą funkcji „Set Timer”, ale zamiast wpisywać nazwę zdarzenia, użyliśmy czerwonej pinezki niestandardowego zdarzenia, aby utworzyć skojarzenie z parametrem „Delegate” w Funkcja „Ustaw delegata timera”. Powyższy przykład oznacza po prostu, że zdarzenie „Zegar” będzie wywoływane co 1 sekundę.
Zdarzenie „Clock” odpowiada za zmniejszenie jednej zmiennej „time”, zaktualizowanie tekstu komponentu TextRender oraz sprawdzenie, czy zmienna „time” jest równa zero, aby wyczyścić Timer i wywołać Event Dispatcher „Detonate “:

Akcja „Wyczyść licznik czasu” wyłącza licznik czasu. Musisz podać nazwę zdarzenia niestandardowego, które jest skojarzone z licznikiem czasu. W powyższym przykładzie dezaktywujemy timer, aby zatrzymać licznik na zero.
Akcja „Call Detonate” generuje zdarzenie „Detonate”, które stworzyliśmy za pomocą Event Dispatchera. Akcje, które nastąpią w związku z tym wydarzeniem, zostaną utworzone na schemacie poziomu.
Po kompilacji „Detonator” Blueprint , że jest gotowy do dodania do poziomu. Poniższy obrazek przedstawia „Detonator” w tabeli.

Teraz musimy umieścić akcje na planach poziomów, które spowodują eksplozję. Wybierz schemat „Detonator”, który został umieszczony na poziomie, a następnie otwórz schemat poziomu. Kliknij prawym przyciskiem myszy na wykresie i wybierz „Dodaj detonację”:
„Detonacja” to zdarzenie generowane przez „Detonator” za pomocą Event Dispatcher. Dostosowując przykład z poprzedniego artykułu, skrypt schematu poziomu wygląda następująco :

Uruchom grę i dotknij „Detonatora”, aby rozpocząć odliczanie. Kiedy osiągnie zero, generowany jest wybuch:

Korzystając z Event Dispatchera , oddzielamy schemat „Detonatora” generowanej eksplozji. W ten sposób możemy używać “Detonatora” na kilku poziomach generując różne eksplozje bez zmiany schematu “Detonatora”. Dalej: Zaznacz zdarzenia i akcje ukryte w planach Poprzedni: Korzystanie ze schematów poziomów Spis treści