Przeczytaj
Podsumowanie
Dotychczas zaimplementowaliśmy reakcję postaci na zderzenie z przeszkodą lub podłogą – upada, a gracz traci nad nią panowanie. Uzupełnieniem tej mechaniki jest rozwiązanie, w którym chwilę po porażce postać pojawia się ponownie na początku toru. Aby osiągnąć taki efekt, po kolizji z przeszkodą będziemy usuwać obiekt bohatera i tworzyć nowy, który ponownie pojawi się w miejscu startu gry.
Odrodzenie postaci
Tworzenie rozwiązania odpowiedzialnego za odrodzenie postaci rozpoczynamy od dodania w blueprincie bohatera funkcji Add Custom Event i nadania jej nazwy, np. odrodzenie.
W kolejnym kroku łączymy ją z funkcją Spawn Actor from Class, służącą do ponownego utworzenia instancji klasy typu ActorActor. Wymaga ona przekazania do niej klasy, którą ma umieścić w grze, w tym wypadku będzie to funkcja GetPlayer Character. Potrzebujemy jednak dodatkowej funkcji Get Class, która skopiuje z obiektu postaci klasę i przekaże ją funkcji Spawn Actor from Class.
Następnie dodajemy komponent Make Transform. Posłuży on do sprecyzowania miejsca, w którym ma pojawić się postać. Najprostszym sposobem jest przepisanie współrzędnych z obiektu PlayerStart.
Aby oddać graczowi kontrolę nad obiektem, używamy funkcji Possess, którą łączymy z funkcją Spawn Actor from Class. Łączymy ją również z funkcją Get Player Controller. Dodatkowo uwzględniamy funkcję Destroy Actor, której zadaniem jest usunięcie postaci po kolizji z przeszkodą.

Zniknięcie postaci
Chcemy, aby postać znikała kilka sekund po uderzeniu w przeszkodę. Wracamy do opisanego w e‑materiale Tworzenie przeszkód – Unreal Engine, etap VIITworzenie przeszkód – Unreal Engine, etap VII rozwiązania odpowiedzialnego za reakcję postaci na kolizję z przeszkodą. Uwzględnioną w nim funkcję Set Physics Blend Weight łączymy z komponentem Delay, który spowoduje opóźnienie kolejnych wydarzeń o określony czas (odpowiednią wartość ustawiamy w sekcji Duration). Na koniec łączymy ten komponent ze stworzoną we wcześniejszych krokach funkcją odpowiedzialną za odrodzenie postaci.
Komunikat o wygranej
Stworzyliśmy już rozwiązanie, które wykona się w sytuacji, gdy zajdzie negatywny scenariusz. Kolejnym krokiem jest zaprojektowanie tego, co wydarzy się w sytuacji, gdy gracz podoła wszystkim przeszkodom i dotrze do końca gry. Stwórzmy ekran z komunikatem o wygranej.
Rozpoczynamy od utworzenia w sekcji Content browser nowego obiektu, z menu, które rozwinie się po kliknięciu prawego przycisku, wybieramy opcję User Interface i następnie Widget Blueprint. W pojawiającym się oknie klikamy User Widget. Zaznaczamy obiekt i przechodzimy do jego okna edytora. W sekcji Palette wybieramy narzędzie Canvas Panel. Za jego pomocą umieszczamy na środku obiektu płótno. Następnie w tej samej sekcji wyszukujemy narzędzie Text. Przeciągamy je na środek płótna.
Edycja tekstu
W obszarze Details w sekcji Content dodajemy tekst. Możemy również edytować go na wiele sposobów. W sekcji Font zmieniamy wygląd liter – typ fontu, rozmiar, pochylenie, pogrubienie itd. W sekcji Anchors możemy ustawić położenie komunikatu na stronie.

Ustalenie, że gracz wygrał
Ostatnim krokiem jest ustalenie warunku, po którym ma wyświetlić się komunikat o wygranej. Gracz wygrywa, gdy znajdzie się na ostatniej platformie, potrzebujemy więc sposobu na sprawdzenie, czy tam dotarł. Po raz kolejny wykorzystamy tu komponent odpowiedzialny za wykrywanie kolizji.

W ostatniej części serii o tworzeniu gier w Unreal Engine poprawisz kilka funkcjonalności, a następnie wyeksportujesz grę tak, aby można ją było przekazać graczom.
Słownik
ActorActorjedna z dostępnych w Unreal Engine klas nadrzędnych określająca obiekt, który można umieścić w świecie gry
zintegrowane środowisko programistyczne stworzone dla osób projektujących gry komputerowe