Plattformen, die in regelmäßigen Abständen auftauchen und wieder verschwinden, sind ein fester Bestandteil von Jump'n'Run-Spielen wie Hindernisparcours. Die Spieler müssen ihre Sprünge so timen, dass sie es zur nächsten Plattform schaffen. Wenn sie nicht schaffen, fallen sie runter und müssen von vorne anfangen.
Dieses Beispiel zeigt, wie eine verschwindende Plattform mithilfe des Szenendiagramms und einer in Verse erzeugten Komponente erstellt wird. Vergleiche dies mit der von Verse erstellten Geräteimplementierung des gleichen Konzepts in Verschwindende Plattform in Schleife.
Plattformen verschwinden lassen
Befolge diese Schritte, um eine verschwindende Plattform mithilfe des Szenendiagramms zu erstellen:
Füge eine Entität zu deiner Szene mit dem Namen DisappearingPlatform hinzu. Unter Arbeiten mit Entitäten und Komponenten findest du mehr Informationen über das Hinzufügen von Entitäten und Komponenten zu deiner Szene.
Füge die mesh_component zu deiner verschwindenden Plattformentität hinzu und lege das Mesh auf Würfel fest.
Erstelle eine neue Verse-Komponente mit dem Namen
disappear_on_loop_component, füge die Komponente deiner verschwindenden Plattformentität hinzu und speichere die Entität. Wie du deine eigene Komponente erstellen kannst, erfährst du unter Erstellen eigener Komponenten mit Verse.Öffne deine
disappear_on_loop_componentin VS Code, um sie in den folgenden Schritten zu bearbeiten.Füge der Komponente mit dem Namen
Dauereine bearbeitbarefloat-Eigenschaft hinzu. Dadurch wird festgelegt, wie lange die Plattform angezeigt werden soll, bevor sie ausgeblendet wird, und wie lange sie ausgeblendet bleibt, bevor sie wieder erscheint.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):Um eine Plattform zu verbergen, kannst du ihr Statisches Mesh unsichtbar machen, indem du die Kollision ausschaltest, damit ein Spieler nicht auf der Plattform landen kann. Füge eine neue Funktion hinzu, die von der
Entitätmit dem NamenHide()zu deiner Klassedisappear_on_loop_componenterweitert wird. Rufe innerhalb dieser FunktionGetComponents[]mit dem gesuchten Typ auf, in diesem Fallmesh_component, und gib das Statisches Mesh der Entität zurück. Rufe dannDisable()für das Statisches Mesh auf.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()Füge eine weitere
Entitätserweiterungsfunktion mit dem NamenShow()zu deinerdisappear_on_loop_component-Klasse hinzu. Die Implementierung ist die gleiche wie beiHide(), aber du rufst stattdessenEnable()auf den Statisches-Mesh-Komponenten auf.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()Verwende schließlich in
OnSimulate()einenSchleifenausdruck, um die Plattform in einer Schleife ein- und ausblenden zu können, wobei du jedes MalSleep()aufrufst. Deine vollständigedisappear_on_loop_component-Klasse sollte wie folgt aussehen: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):Speichere und kompiliere deinen Code.
Mache im UEFN-Outliner deine DisappearingPlatform-Entität zu einem Prefab mit dem Namen disappearing_platform_prefab. Als Prefab kannst du mehrere Instanzen deiner verschwindenden Plattform erstellen und das Aussehen und die Basisimplementierung für alle aktualisieren, wenn du dies später benötigst. Wie du Entitäten zu einem Prefab machst, erfährst du unter Prefabs und Prefab-Instanzen.
Vollständiges Script
Hier ist der vollständige Code, der in diesem Abschnitt verwendet wird:
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):