Platformy, które okresowo pojawiają się i znikają, to podstawowy element gier platformowych, takich jak tory z przeszkodami. Wymagają od graczy odpowiedniego wymierzenia skoku, aby dotrzeć do następnej platformy. Jeśli nie trafią w platformę, spadną z niej i będą musieli zaczynać od nowa.
Z tego samouczka dowiesz się, jak używać Verse w Unreal Editor dla Fortnite (UEFN), aby utworzyć platformę, która pojawia się i znika w pętli. Na końcu tego samouczka znajduje się kompletny skrypt.

Używane funkcje języka Verse
loop: Platforma do końca gry zmienia stan na przemian na widoczny i niewidoczny. W tym przykładzie użyto wyrażenialoopVerse do ciągłego uruchamiania tego zachowania.
Używane interfejsy API Verse
-
Sleep(): Przy użyciu funkcjiSleep()możesz wybrać, jak długo platforma będzie w stanie niewidocznym i widocznym. -
Edytowalne właściwości: Dla UEFN są uwidocznione dwie właściwości urządzenia. Możesz je dostosować w edytorze. Są to: odwołanie
creative_propprop dla platformy orazToggleDelaydla wywołania funkcjiSleep().
Ustawianie poziomu
W tym samouczku jako punkt wyjścia wykorzystano Szablon początkowy Verse. Na początek zainicjalizuj nowy projekt z przykładu funkcji Urządzenie Verse.
W tym przykładzie wykorzystano następujące rekwizyty i urządzenia:
-
1 x urządzenie Panelu startowego gracza: To urządzenie określa, w którym miejscu na początku gry spawnuje się gracz.
-
3 x Rekwizyt trybu kreatywnego: Rekwizyty trybu kreatywnego mają kilka zachowań, które można wywoływać za pomocą Verse, na przykład
Hide()iShow(), aby przełączać widoczność platformy i kolizję. W tym samouczku wykorzystano Platformę unoszącą się A jako platformę interaktywną dla gracza, ale możesz ją dowolnie zmieniać, dostosowując ją do swoich potrzeb.
Postępuj zgodnie z poniższą instrukcją, aby skonfigurować swój poziom:
-
Przeciągnij i upuść jedną Powietrzną platformę unoszącą się A do swojej sceny. Umieść to nad podłogą, aby gracz spadł, jeśli w porę nie zeskoczy ze znikającej platformy. W Outlinerze nazwij platformę LoopingDisappearingPlatform.
-
Wykonaj dwie kopie platformy i umieść je po przeciwnych stronach pierwszej platformy tak, aby gracz musiał odpowiednio wymierzyć skok. Gracz powinien mieć tylko tyle czasu, aby dostać się na drugą stronę.
-
Przenieś Panel Startowy Gracza na jedną z platform. W tym miejscu gracz się spawnuje w chwili rozpoczęcia gry. Twoja konfiguracja poziomu powinna wyglądać mniej więcej tak:
Tworzenie urządzenia Verse
W tym przykładzie używamy urządzenia utworzonego w Verse, aby zdefiniować zachowanie, które przełącza widoczność platformy. Wykonaj następujące kroki, aby utworzyć urządzenie Verse, a następnie umieść je na poziomie.
-
Utwórz nowe urządzenie Verse o nazwie looping_disappearing_platform przy użyciu Eksploratora Verse. Aby poznać kroki, patrz: Tworzenie własnego urządzenia przy użyciu Verse.
-
Przeciągnij urządzenie looping_disappearing_platform z Przeglądarki zawartości do poziomu. Aby poznać kroki, patrz: Tworzenie własnego urządzenia przy użyciu Verse.
Edycja właściwości urządzenia w UEFN
W tej sekcji pokazujemy, jak uwidocznić obie właściwości urządzenia dla UEFN, aby można je było dostosować w edytorze:
-
Odwołanie do
creative_propdo rekwizytu trybu kreatywnego, który umieściłeś na poziomie. -
Stała typu
float, w której przechowywany jest czas, przez jaki platforma powinna być niewidoczna/widoczna, o nazwieToggleDelay.
Postępuj zgodnie z poniższymi instrukcjami, aby uwidocznić te właściwości w edytorze z urządzenia looping_disappearing_platform utworzonego w poprzedniej sekcji.
-
Otwórz Eksplorator Verse i kliknij dwukrotnie looping_disappearing_platform.verse, aby otworzyć skrypt w Visual Studio Code.
-
Do definicji klasy
looping_disappearing_platformdodaj następujące pola:-
Edytowalna wartość
floato nazwieToggleDelay. Oznacza to czas pomiędzy przełączaniem się między stanem widoczności i niewidoczności. Inicjuj tę wartość na2.0, czyli dwie sekundy.# Czas oczekiwania przed przełączeniem widoczności platformy. @editable ToggleDelay : float = 2.0 -
Edytowalny
creative_propo nazwieDisappearingPlatform. Jest to platforma na poziomie, która będzie okresowo znikała i się pojawiała. Ponieważ twój kod nie zawiera jeszcze odwołania do tego obiektu na tym poziomie, utworzysz jego instancję przy użyciu pustego archetypucreative_prop{}. Później przypiszesz to odwołanie do swojej wiszącej platformy.# Odwołanie do platformy na poziomie. @editable DisappearingPlatform:creative_prop = creative_prop{}
-
-
Pola klasy
looping_disappearing_platformpowinny teraz wyglądać następująco:using { /Fortnite.com/Devices } using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/Diagnostics } # Odwiedź stronę: https://dev.epicgames.com/documentation/pl-pl/uefn/create-your-own-device-in-verse, aby dowiedzieć się, jak utworzyć urządzenie Verse. # Urządzenie trybu kreatywnego utworzone w Verse, które można umieścić w poziomie looping_disappearing_platform := class(creative_device): # Czas oczekiwania przed przełączeniem widoczności platformy. @editable ToggleDelay : float = 2.0 # Odwołanie do platformy na poziomie. @editable DisappearingPlatform:creative_prop = creative_prop{}Pomocne jest użycie atrybutu
@editable, aby udostępnić edytorowi wartości z twoich skryptów, takie jakToggleDelay. Pozwala ci to dostosować ich wartości w UEFN bez konieczności ponownego tworzenia kodu Verse za każdym razem, dzięki czemu możesz szybko wprowadzać zmiany i znajdować wartości odpowiadające twojej przygodzie. -
Zapisz skrypt w programie Visual Studio Code i skompiluj kod, aby zaktualizować urządzenie looping_disappearing_platform na tym poziomie.
-
W panelu Outlinera w UEFN wybierz urządzenie looping_disappearing_platform, aby otworzyć jego panel Szczegóły.
-
W panelu Szczegóły w sekcji Zapętlenie znikającej platformy:
-
Ustaw DisappearingPlatform na LoopingDisappearingPlatform (rekwizyt trybu kreatywnego dodany do poziomu), klikając wybieracz obiektów i wybierając rekwizyt trybu kreatywnego w oknie wizualizacji lub wyszukując LoopingDisappearingPlatform w pasku wyszukiwania.

-
Ustaw ToggleDelay na liczbę sekund, przez które platforma ma być widoczna/niewidoczna. Wartość domyślna to 2.0, ponieważ jest to wartość zdefiniowana wcześniej.
-
Ukrywanie i wyświetlanie platformy
Po skonfigurowaniu poziomu i urządzeń możesz dodać logikę do wyświetlania i ukrywania platformy. Wykonaj poniższe kroki, aby dodać to zachowanie do urządzenia looping_disappearing_platform:
-
Klasa
creative_propzawiera dwie metody do przełączania jej widoczności:Show()iHide(). Wróć do Visual Studio Code, wOnBegin()wywołajHide(), a następnieShow()na swojejDisappearingPlatform.# Działa po uruchomieniu urządzenia w aktywnej grze OnBegin<override>()<suspends>:void= # Zrób platformę niewidoczną. DisappearingPlatform.Hide() # Zrób platformę widoczną. DisappearingPlatform.Show()Po wykonaniu tego kodu nie zobaczysz, jak platforma znika i pojawia się ponownie, ponieważ wywołania do
Hide()iShow()następują bezpośrednio po sobie. -
Aby platforma pozostawała dłużej w stanie widocznym/niewidocznym, należy dodać opóźnienie przed każdym wywołaniem funkcji
Hide()iShow()za pomocą funkcjiSleep(). FunkcjaSleep()zawiesza wykonanie procedury. Przekazując funkcji argumentfloat, określasz ilość czasu (w sekundach), przez który wykonanie funkcji ma być zawieszone. WywołajSleep()przed każdym wywołaniemHide()iShow(), przekazującToggleDelay, co zostało zdefiniowane wcześniej.# Działa po uruchomieniu urządzenia w aktywnej grze OnBegin<override>()<suspends>:void= # Odczekaj przez czas określony przez ToggleDelay liczony w sekundach. Sleep(ToggleDelay) # Zrób platformę niewidoczną. DisappearingPlatform.Hide() # Odczekaj przez czas określony przez ToggleDelay liczony w sekundach. Sleep(ToggleDelay) # Zrób platformę widoczną. DisappearingPlatform.Show()Po wykonaniu tego kodu platforma będzie niewidoczna przez dwie sekundy (czas zdefiniowany przez
ToggleDelay), zanim stanie się widoczna przez resztę gry.Funkcję
Sleep()można wywołać wyłącznie w kontekście asynchronicznym. MetodaOnBegin()jest już kontekstem asynchronicznym, ponieważ posiada specyfikatorsuspends, dlatego nie są konieczne żadne dalsze czynności. Aby dowiedzieć się więcej na temat specyfikatorasuspends, przeczytaj dokument Specyfikatory i atrybuty. -
Aby platforma przez całą grę zmieniała na przemian stan na widoczny i niewidoczny, możesz użyć wyrażenia
loop. Wielokrotne użycielooppowoduje uruchomienie kodu wewnątrz wyrażenialoop, chyba że kod zostanie przerwany poleceniembreak. W tym przykładzie chcesz przełączać widoczność platform przez cały czas trwania gry, dlatego nie musisz dodawać wyrażeniabreak, aby opuścićloop. Dodaj wyrażenieloopna początkuOnBegin()i spraw, aby reszta kodu znalazła się wewnątrz pętli. Twoja metodaOnBegin()powinna wyglądać następująco:# Działa po uruchomieniu urządzenia w aktywnej grze OnBegin<override>()<suspends>:void= loop: # Odczekaj przez czas określony przez ToggleDelay liczony w sekundach. Sleep(ToggleDelay) # Zrób platformę niewidoczną. DisappearingPlatform.Hide() # Odczekaj przez czas określony przez ToggleDelay liczony w sekundach. Sleep(ToggleDelay) # Zrób platformę widoczną. DisappearingPlatform.Show() -
Zapisz skrypt i kliknij Verse, następnie Skompiluj kod Verse, aby skompilować kod.
-
Na pasku narzędzi UEFN kliknij Uruchom sesję, aby przetestować poziom w grze.
Podczas testowania poziomu w grze platforma powinna pojawiać się i znikać co dwie sekundy przez cały czas trwania gry.

Kompletny skrypt
Poniższy kod to kompletny skrypt do okresowego ukrywania i wyświetlania w pętli (loop).
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Odwiedź stronę: https://dev.epicgames.com/documentation/pl-pl/uefn/create-your-own-device-in-verse, aby dowiedzieć się, jak utworzyć urządzenie Verse.
# Urządzenie trybu kreatywnego utworzone w Verse, które można umieścić w poziomie
looping_disappearing_platform := class(creative_device):
# Czas oczekiwania przed przełączeniem widoczności platformy.
@editable
ToggleDelay : float = 2.0
# Odwołanie do platformy na poziomie.
@editable
DisappearingPlatform:creative_prop = creative_prop{}
# Działa po uruchomieniu urządzenia w aktywnej grze
OnBegin<override>()<suspends>:void=
loop:
# Odczekaj przez czas określony przez ToggleDelay liczony w sekundach.
Sleep(ToggleDelay)
# Zrób platformę niewidoczną.
DisappearingPlatform.Hide()
# Odczekaj przez czas określony przez ToggleDelay liczony w sekundach.
Sleep(ToggleDelay)
# Zrób platformę widoczną.
DisappearingPlatform.Show()
We własnym zakresie
Po ukończeniu samouczka umiesz utworzyć w Verse urządzenie, które przełącza widoczność platformy przez cały czas trwania gry.
Wykorzystując zdobytą wiedzę, spróbuj wykonać następujące czynności:
-
Zduplikuj konfigurację przy użyciu urządzenia looping_disappearing_platform i rekwizytu i wypróbuj inne timingi
ToggleDelay, aby utworzyć dłuższą serię platform. -
Zastosuj te same koncepcje, aby okresowo wywoływać funkcje innych obiektów, takich jak urządzenie przenośnika rekwizytów.