Le piattaforme che appaiono e scompaiono periodicamente sono un elemento cruciale per le modalità di gioco a piattaforma come i percorsi a ostacoli. Richiedono ai giocatori di cronometrare i loro salti per arrivare alla piattaforma successiva. Se non riescono, cadono e devono ricominciare da capo.
Questo esempio mostra come creare una piattaforma a scomparsa utilizzando Scene Graph e un componente creato da Verse. Confrontalo con l'implementazione del dispositivo creato da Verse dello stesso concetto in Piattaforma a scomparsa in loop.
Far scomparire le piattaforme
Segui questa procedura per creare una piattaforma a scomparsa utilizzando Scene Graph:
Aggiungi un'entità alla scena denominata DisappearingPlatform. Per saperne di più sull'aggiunta di entità e componenti alla scena, vedi Utilizzo di entità e componenti.
Aggiungi mesh_component all'entità piattaforma a scomparsa e imposta la mesh su cube.
Crea un nuovo componente Verse denominato
disappear_on_loop_component, aggiungi il componente all'entità della piattaforma a scomparsa e salva l'entità. Per imparare a creare il tuo componente, vedi Crea il tuo componente personalizzato usando Verse.Apri
disappear_on_loop_componentin VS Code per modificarlo nei passaggi seguenti.Aggiungi una proprietà
floatmodificabile al componente denominatoDuration. Questo determina per quanto tempo la piattaforma deve essere mostrata prima di essere nascosta e per quanto tempo è nascosta prima di apparire di nuovo.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):Per nascondere una piattaforma, puoi rendere invisibile la sua mesh statica disattivando la collisione in modo che un giocatore non possa atterrare sulla piattaforma. Aggiungi una nuova funzione che si estenda dall'
entitàdenominataHide()alla classedisappear_on_loop_component. All'interno di questa funzione, chiamaGetComponents[]con il tipo che stai cercando, in questo casomesh_component, restituendo la mesh statica dell'entità. Quindi chiamaDisable()sulla mesh statica.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()Aggiungi un'altra funzione di estensione dell'
entitàdenominataShow()alla classedisappear_on_loop_component. L'implementazione è la stessa diHide()ma chiamerai inveceEnable()sui componenti con mesh statica.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()Infine, in
OnSimulate(),utilizza un'espressioneloopper eseguire il loop nascondendo e mostrando la piattaforma, chiamandoSleep()ogni volta. La classedisappear_on_loop_componentcompleta deve avere le seguenti caratteristiche: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):Salva e compila il tuo codice.
Nell'Outliner UEFN, promuovi la tua entità DisappearingPlatform a un prefab denominato disappearing_platform_prefab. Come prefab, puoi creare più istanze della tua piattaforma a scomparsa e aggiornare l'aspetto e l'implementazione di base per tutte se necessario in seguito. Per informazioni su come promuovere le entità a prefab, vedi Prefab e istanze prefab.
Script completo
Ecco il codice completo utilizzato in questa sezione:
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):