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żenialoop
Verse 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_prop
prop dla platformy orazToggleDelay
dla 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_prop
do 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_platform
dodaj następujące pola:-
Edytowalna wartość
float
o 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_prop
o 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_platform
powinny 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_prop
zawiera 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życieloop
powoduje 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żenieloop
na 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.