Wenn alle Geräte vorhanden sind, ist es an der Zeit festzulegen, wie sie interagieren sollen.
Mit der direkten Event-Bindung können Geräte direkt miteinander kommunizieren, indem sie Events und Funktionen verwenden. Mehr darüber erfährst du hier.
Gerät A | Funktion | Gerät B | Event | Erklärung |
---|---|---|---|---|
Hohle Barriere 1 & 2 ![]() |
Deaktivieren | Timer ![]() |
Bei Erfolg | Wenn der Timer abläuft, verschwinden die Barrieren. |
Undurchsichtige Barriere ![]() |
Deaktivieren | Timer ![]() |
Bei Erfolg | Wenn der Timer abläuft, verschwinden die Barrieren. |
Hier ist ein Screenshot davon, wie das aussehen wird, wenn die Bindung festgelegt ist:

Direkte Event-Bindung mit Verse
Alternativ kannst du die Gerätelogik auch mit Verse programmieren.
Der erste Schritt besteht darin, dein eigenes Gerät mit Verse zu erstellen. Weitere Informationen findest du im Leitfaden Grundlagen zum Schreiben von Code in Verse. Wende dann diese Konzepte hier an.
Jetzt musst du die Geräte referenzieren, die du in deinem Script mit Verse steuern möchtest.
Du benötigst 3 barrier_device
und 1 timer_device
:
box_fight_manager := class<concrete>(creative_device):
Logger:log = log{Channel:=box_fight_log}
@editable
Barrier1:barrier_device = barrier_device{}
@editable
Barrier2:barrier_device = barrier_device{}
@editable
MidBarrier:barrier_device = barrier_device{}
@editable
Timer:timer_device = timer_device{}
Kompiliere deinen Code, ziehe den box_fight_manager
in das Level und wähle dann die entsprechenden Geräte aus:

In diesem Beispiel startet der Timer
bei Spielbeginn von selbst. Nach Ablauf der eingestellten Zeit ist der Timer
erfolgreich, und die Barrieren werden deaktiviert.
Wir abonnieren das SuccessEvent
des Timer
s, wenn das Spiel beginnt:
OnBegin<override>()<suspends>:void=
Timer.SuccessEvent.Subscribe(DropBarriers)
DropBarriers
wird aufgerufen, um die drei Barrieren zu deaktivieren:
DropBarriers(Player:?agent):void=
Barrier1.Disable()
Barrier2.Disable()
MidBarrier.Disable()
Beachte, dass das SuccessEvent
einen Funktionsaufruf erwartet, der ein Agent
-Argument enthält.
Kompiliere deinen Code – fertig! Nun kannst du deine Insel im Spieltest ausprobieren.
Hier ist das komplette Script als Referenz:
using { /Fortnite.com/Devices }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
box_fight_log:=class(log_channel){}
box_fight_manager := class<concrete>(creative_device):
Logger:log = log{Channel:=box_fight_log}
@editable
Barrier1:barrier_device = barrier_device{}
@editable
Barrier2:barrier_device = barrier_device{}
@editable
MidBarrier:barrier_device = barrier_device{}
@editable
Timer:timer_device = timer_device{}
OnBegin<override>()<suspends>:void=
Timer.SuccessEvent.Subscribe(DropBarriers)
DropBarriers(Player:?agent):void=
Barrier1.Disable()
Barrier2.Disable()
MidBarrier.Disable()
Spieltest für deine Insel
Du hast es geschafft!
Nachdem alles eingerichtet und einsatzbereit ist, solltest du deine Insel testen, um sicherzustellen, dass sie in Fortnite wie erwartet funktioniert.
Informationen zur Veröffentlichung deines Projekts findest du auf der Seite Projekte veröffentlichen.