Platformy, które okresowo pojawiają się i znikają, to podstawowy element gier platformowych, takich jak tory z przeszkodami. Wymagają one, aby gracze wskakiwali na platformy w odpowiednim czasie, aby przejść na kolejną platformę. Jeśli nie trafią, spadają i muszą zacząć od nowa.
W tym przykładzie zaprezentowano sposób utworzenia znikającej platformy przy użyciu Scene Graph i komponentu utworzonego w Verse. Porównaj ten przykład z implementacją urządzenia utworzoną w Verse. Ta sama koncepcja jest stosowana w przypadku znikającej platformy w pętli.
Wymuszanie znikania platform
Aby utworzyć znikającą platformę przy użyciu Scene Graph, wykonaj następujące kroki:
Dodaj jednostkę do sceny o nazwie DisappearingPlatform. Zobacz Praca z jednostkami i komponentami, aby dowiedzieć się więcej o dodawaniu jednostek i komponentów do sceny.
Dodaj komponent mesh_component do jednostki znikającej platformy i ustaw siatkę na cube.
Utwórz nowy komponent Verse o nazwie
disappear_on_loop_component, dodaj komponent do jednostki znikającej platformy i zapisz jednostkę. Aby dowiedzieć się, w jaki sposób utworzyć własny komponent, patrz: Tworzenie własnego komponentu przy użyciu Verse.Otwórz
disappear_on_loop_componentw VS Code, aby edytować go w kolejnych krokach.Dodaj edytowalną właściwość
wartość zmiennopozycyjnado komponentu o nazwieDuration.Pozwala ona określić, jak długo platforma ma być wyświetlana, zanim zostanie ukryta, oraz jak długo ma pozostawać ukryta, zanim pojawi się ponownie.Verseusing { /Verse.org } using { /Verse.org/Native } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } # Loops between hiding and showing the entity by enabling and disabling # its static mesh and collision components. disappear_on_loop_component := class(component):Aby ukryć platformę, możesz ustawić jej siatkę statyczną jako niewidoczną poprzez wyłączenie jej kolizji, aby gracz nie mógł wylądować na platformie. Dodaj nową funkcję, która rozciąga się od
Jednostkio nazwieHide()do klasydisappear_on_loop_component. Wewnątrz tej funkcji, wywołajGetComponents[]z typem, którego szukasz, w tym przypadkumesh_component, zwracając siatkę statyczną jednostki. Następnie wywołajDisable()na siatce statycznej.Verse# If the entity has a mesh or collision component, disable them. (Entity:entity).Hide():void= if: StaticMesh := Entity.GetComponent[mesh_component] then: StaticMesh.Disable()Dodaj kolejną funkcję
rozszerzenia jednostkio nazwieShow()do klasydisappear_on_loop_component.Implementacja jest taka sama, jak w przypadkuHide(), ale zamiast tego wywołaszEnable()dla komponentów siatki statycznej.Verse# If the entity has a mesh or collision component, enable them. (Entity:entity).Show():void= if: StaticMesh := Entity.GetComponent[mesh_component] then: StaticMesh.Enable()Na koniec, w
OnSimulate(), użyj wyrażeniapętla, aby zapętlić ukrywanie i wyświetlanie platformy, za każdym razem wywołującSleep(). Kompletna klasadisappear_on_loop_componentpowinna wyglądać następująco:Verseusing { /Verse.org } using { /Verse.org/Native } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } # Loops between hiding and showing the entity by enabling and disabling # its static mesh and collision components. disappear_on_loop_component := class<final_super>(component):Zapisz i skompiluj swój kod.
W Outlinerze UEFN awansuj swoją jednostkę DisappearingPlatform do gotowca o nazwie disappearing_platform_prefab. Gdy stanie się ona gotowcem, możesz utworzyć więcej instancji znikającej platformy, a w razie potrzeby później zmodyfikować implementację jej wyglądu i bazy. Informacje na temat sposobu awansowania jednostek do gotowca zawiera sekcja: Gotowce i instancje gotowców.
Kompletny skrypt
Oto kompletny kod użyty w tej sekcji:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):