Akcje Blueprints w HUD

Ten artykuł jest kontynuacją artykułu „ Rysowanie HUD z UMG ”.
Dodajmy akcje do schematu widżetu „UMG HUD”, który został utworzony w poprzednim artykule, a także w schemacie „Sedan”, który przedstawia samochód sterowany przez gracza w szablonie „Vehicle”.

Otwórz schemat widżetu „UMG_HUD” i przejdź do trybu „Wykres”. W tym artykule utworzymy 3 funkcje, aby uzyskać wartości prędkości, biegu i paliwa. Utwórzmy zmienną odnoszącą się do odtwarzacza samochodowego i tablicę „pędzli”, aby zachować obrazy przedstawiające poszczególne biegi samochodu. Na końcu tego artykułu zakładka „MyBlueprint” w „UMG_HUD” wygląda następująco:

Zacznij od utworzenia zmiennej „PlayerSedan”. Należy do typu „Sedan”, który jest schematem stworzonym dla szablonu „Pojazd”. Zainicjalizujmy tę zmienną przy zdarzeniu „Construct” w „UMG_HUD” w ten sposób:

W trybie „Projektant” kliknij element tekstowy zawierający wartość szybkości. Na karcie „Szczegóły” kliknij przycisk „Bind” obok właściwości „Text” i wybierz „Create Binding”, aby edytor utworzył nową funkcję.

Zrobiono to w celu powiązania wartości „Text” z wartością zwracaną przez funkcję. Zmień nazwę utworzonej funkcji na „GetSedanSpeed” i umieść następujące akcje:

W Planie „Sedan” znajduje się zmienna o nazwie „Speed ​​Display String”, która zawiera wartość prędkości i litery „KM / H”.

Blok bez nazwy na powyższym rysunku jest konwerterem typu „String” na typ „Text”. Te konwertery są tworzone automatycznie przez edytor po utworzeniu połączenia między dwoma typami.

To wszystko, co należy zrobić, aby poprawnie wyświetlić prędkość. Teraz dokonaj niezbędnych korekt, aby wyświetlić bieg.


Utwórz zmienną o nazwie „GearBrushes” typu „Slate Brush” i kliknij ikonę obok typu zmiennej, aby przekształcić ją w tablicę . Typ „Slate Brush” został stworzony specjalnie dla UMG.

Na karcie „Szczegóły” zmiennej, w sekcji „Wartość domyślna”, dodaj 7 elementów do tablicy. Dla każdego elementu wybierz obraz przedstawiający jedno z kół zębatych. Te obrazy musiały zostać zaimportowane jako tekstury w poprzednim artykule . Użyj następującej kolejności:

  • 0: bieg neutralny;
  • 1 do 5: Użyj równoważnego sprzętu;
  • 6: bieg wsteczny;

W trybie „Projektant” kliknij element „Obraz” reprezentujący koło zębate. Na karcie „Szczegóły”, w kategorii „Wygląd”, we właściwości „Pędzel”, kliknij przycisk „Powiązanie”, a następnie w „Utwórz powiązanie”. Zmień nazwę utworzonej funkcji na „GetSedanGear”.

Użyjmy funkcji będącej częścią planu „Sedan” o nazwie „GetCurrentGear”. Ta funkcja zwraca wartość całkowitą reprezentującą bieżący bieg. Jeśli wartość wynosi zero, to bieg neutralny. Jeśli wartość jest ujemna, oznacza to, że pojazd jest na biegu wstecznym.

Funkcja „getSedanGear” ma następujące działania:

Utworzono zmienną całkowitą o nazwie „BrushIndex”, aby zachować pozycję w tablicy klasy Brush, która zostanie zwrócona. Jeśli wartość biegu jest ujemna to wartość wskaźnika tablicy wynosi 6, czyli położenie obrazu biegu wstecznego. Jest używana akcja „Get”, aby zwrócić poprawny obraz tablicy „GearBrushes” zgodnie z wartością indeksu „BrushIndex”.

Zróbmy więcej poprawek, aby móc uruchomić próbkę. Następnie dokonamy niezbędnych zmian, aby uwzględnić zużycie paliwa w grze.
Otwórz Blueprint „Sedan”, poszukaj zdarzenia „BeginPlay” w „EventGraph”. Na początku zdarzenia dodaj dwie akcje, które utworzą instancję „UMG_HUD” i dodadzą ją do widoku.

W edytorze poziomów kliknij przycisk „Ustawienia” znajdujący się na górnym pasku i wybierz opcję „Ustawienia świata”. W kategorii „GameMode” zmień właściwość klasy HUD na klasę „HUD” zamiast „VehicleHUD”. W ten sposób nie pojawi się stara wersja HUD utworzona przez szablon. Dzięki tym zmianom próbkę można uruchomić, aby zobaczyć, jak nowy HUD pracuje z prędkością i biegiem.

Zostawiłem paliwo na później, ponieważ wprowadzimy pewne zmiany w Blueprint „Sedan”. Będzie to świetna okazja, aby przećwiczyć różne koncepcje schematów, które widzieliśmy do tej pory.

Otwórz plan „Sedan” i utwórz nową zmienną o nazwie „Paliwo” typu „Float”. Zaznacz opcję „Edytowalne” i wybierz „Wyświetl” jako kategorię zmiennej. W ten sposób pozostaje razem z innymi zmiennymi używanymi w HUD. U dołu zakładki „Szczegóły” zmiennej „Paliwo” wprowadź domyślną wartość „1,0”, która reprezentuje pełny zbiornik. Poniższy obrazek przedstawia zmienną „Paliwo”.

Dzięki tej nowej zmiennej utworzonej w Blueprint „Sedan” możemy sfinalizować niezbędne zmiany w schemacie widżetu „UMG_HUD”. W trybie „Projektant” w „UMG_HUD” kliknij element „ProgressBar”, który reprezentuje wskaźnik paliwa. Na karcie „Szczegóły”, w kategorii „Wygląd”, we właściwości „Procent”, kliknij przycisk „Powiązanie”, a następnie w „Utwórz powiązanie”. Zmień nazwę utworzonej funkcji na „GetSedanFuel”.

Oto treść funkcji „GetSedanFuel”:

Powrót do planu „Sedan”. Stwórzmy funkcję o nazwie „UpdateFuel”. Ta funkcja otrzyma jako parametr wejściowy wartość „AxisValue” reprezentującą ruch do przodu i do tyłu w sterowaniu lub klawiaturze.

Funkcja ma parametr wyjściowy o nazwie „ThrottleValue”, który reprezentuje przyspieszenie pojazdu. Ta funkcja odpowiada za zmniejszenie ilości paliwa. Jeśli nie ma już paliwa, wartość „ThrottleValue” będzie wynosić zero, uniemożliwiając samochodowi jazdę.
Utwórz nową funkcję o nazwie „UpdateFuel” w planie „Sedan”:

W zakładce „Szczegóły” funkcji „Aktualizuj paliwo” utwórz parametr wejściowy „AxisValue” typu „Float” i parametr wyjściowy „ThrottleValue” typu „Float”.

Otwórz funkcję „UpdateFuel” w edytorze. Zwróć uwagę, że w zakładce „Mój plan” pojawia się nowa kategoria o nazwie „Zmienne lokalne”. Zmienna lokalna istnieje tylko w funkcji, w której została utworzona. Utwórzmy lokalną zmienną o nazwie „Throttle” typu „Float”, aby pomóc w logice funkcji „UpdateFuel”.

Funkcja „UpdateFuel” ma następujące działania:

Jeśli wartość parametru „AxisValue” wynosi zero, oznacza to, że gracz nie naciskał kontrolki ani klawiatury, aby ruszyć samochodem do przodu lub do tyłu. Funkcja sprawdza, czy wartość „AxisValue” jest różna od zera, a zmienna „Fuel” jest większa od zera. Jeśli to prawda, następuje normalne przyspieszenie i paliwo spada. W przeciwnym razie przyspieszenie wynosi zero. Ta funkcja będzie nazywana każdym tikiem . Umieśćmy wywołanie tej funkcji w zdarzeniu „InputAxis MoveForward” planu „Sedan” poniżej.

Zdarzenie „InputAxis MoveForward” z funkcją „UpdateFuel” stało się:

To była ostatnia modyfikacja wymagana do ukończenia nowego interfejsu.


Źródło:https://romeroblueprints.blogspot.com/2015/04/the-blueprints-actions-of-hud.html