Kursinhalt
Unreal Engine FPS-Spiel
Unreal Engine FPS-Spiel
Spielende-Logik
In diesem Kapitel werden wir die Bedingungen für Gameover festlegen, wenn dem Spieler die Gesundheit ausgeht! Es gibt mehrere Möglichkeiten, dies zu tun. Zum Beispiel könnten Sie eine neue Funktion einrichten, die die Spieler-Gesundheit überprüft und das Gameover-Widget anzeigt, sobald die Gesundheit kleiner oder gleich zero
ist, und dann ein Event Tick
verwenden, um diese Funktion ständig aufzurufen.
Das ist jedoch keine sehr gute Praxis! Der Grund dafür ist, dass Sie vermeiden sollten, Event Tick
zu verwenden, wenn Sie können, da es ständig ausgelöst wird und wenn Sie viele Anweisungen haben, die mit einem Event Tick
ausgeführt werden, wird die Belastung des Computers und des Prozessors erhöht, insbesondere wenn die Berechnungen komplex sind. Obwohl diese Berechnungen nicht besonders komplex sind, werden wir diese Funktionalität direkt in unsere Take Damage-Funktion implementieren.
Öffnen wir also die TakeDamage-Funktion, die wir zu Beginn dieses Kurses im FirstPersonCharacter
erstellt haben. Hier können wir überprüfen, ob der Wert der PlayerHealth
-Variable direkt nach der Aktualisierung des Wertes auf zero
oder niedriger gesunken ist! Das ist eine gute Praxis.
Am Ende der Funktion, wo wir unsere Spieler-Gesundheit setzen, ziehen Sie aus dem grünen Pin heraus und suchen Sie nach less or equal to
. Lassen Sie die andere Ganzzahl 0
sein und verwenden Sie einen Zweig, um zu überprüfen, ob der Wert von PlayerHealth
unter 0
gesunken ist, wie unten gezeigt.
Als nächstes holen Sie den Player Controller und setzen den Eingabemodus auf nur UI und setzen den Mauszeiger anzeigen auf True
. Auf diese Weise stellen wir sicher, dass der Spieler auf die Schaltflächen klicken kann, die wir im Gameover
-Blueprint platziert haben.
Erstellen Sie ein Widget und suchen Sie nach WBP_Gameover
und fügen Sie es dem Viewport hinzu. Suchen Sie schließlich nach dem Set Game Paused-Knoten und aktivieren Sie das Kontrollkästchen, damit das Spiel auch pausiert wird, sobald der Gameover-Bildschirm angezeigt wird! Das war's!
Danke für Ihr Feedback!