Les plateformes qui apparaissent et disparaissent périodiquement sont un élément essentiel des modes de jeu de plateformes, comme les courses d'obstacles. Elles demandent aux joueurs d'ajuster leurs sauts pour atteindre la plateforme suivante. S'ils échouent, ils tombent et doivent recommencer.
Dans cet exemple, nous vous expliquons comment créer une plateforme qui disparaît à l'aide de Scene Graph et d'un composant créé via Verse. Comparez cette procédure à l'implémentation d'un appareil créé via Verse du même concept dans Disparition de la plateforme en boucle.
Faire disparaître les plateformes
Procédez comme suit pour créer une plateforme qui disparaît à l'aide de Scene Graph :
Ajoutez une entité nommée DisappearingPlatform à votre scène. Consultez la rubrique Utiliser des entités et des composants pour en savoir plus sur l'ajout d'entités et de composants à votre scène.
Ajoutez le mesh_component à votre entité de disparition de plateforme et définissez le maillage sur cube.
Créez un nouveau composant Verse nommé
disappear_on_loop_component, ajoutez-le à votre entité de disparition de plateforme, puis sauvegardez l'entité. Pour savoir comment créer votre propre composant, consultez la rubrique Créer votre propre composant à l'aide de Verse.Ouvrez votre
disappear_on_loop_componentdans VS Code pour le modifier selon les étapes suivantes.Ajoutez une propriété
floatmodifiable au composant nomméDuration. Vous déterminez ainsi la durée pendant laquelle la plateforme doit être visible avant d'être masquée, ainsi que la durée pendant laquelle elle est masquée avant de réapparaître.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):Pour masquer une plateforme, vous pouvez rendre son maillage statique invisible en désactivant la collision, afin qu'un joueur ne puisse pas atterrir sur la plateforme. Ajoutez une nouvelle fonction qui s'étend de l'
entiténomméeHide()à votre classedisappear_on_loop_component.À l'intérieur de cette fonction, appelezGetComponents[]avec le type que vous recherchez, dans ce casmesh_component, en renvoyant le maillage statique de l'entité. Appelez ensuiteDisable()sur le maillage statique.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()Ajoutez une autre fonction d'extension d'
entiténomméeShow()à votre classedisappear_on_loop_component. L'implémentation est la même que pourHide(), mais vous appellerez plutôtEnable()sur les composants de maillage statique.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()Enfin, dans
OnSimulate(), utilisez une expressionlooppour masquer et afficher la plateforme en boucle, en appelantSleep()à chaque fois. Votre classedisappear_on_loop_componentterminée doit ressembler à ce qui suit :.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):Enregistrez votre code et compilez-le.
Dans l'organiseur de l'UEFN, promouvez votre entité DisappearingPlatform en préfabriqué nommé disappearing_platform_prefab. En tant que préfabriqué, vous pouvez créer d'autres instances de votre plateforme de disparition, puis mettre à jour l'apparence et l'implémentation de base ultérieurement pour ces instances si vous en avez besoin. Pour savoir comment promouvoir des entités en préfabriqué, consultez la rubrique Préfabriqués et instances de préfabriqués.
Script complet
Voici le code complet utilisé dans cette section :
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):