In diesem Abschnitt des Unity 3D Tutorials erstellen wir ein User Interface mit einer Lebensanzeige für den 3D Character. Das ist wichtig, da die Gegner den Character attackieren können. Das haben wir im letzten Teil des Tutorials durchgeführt. Dadurch wird ein Schaden verursacht. Allerdings gibt es noch kein User Interface, das die Gesundheitspunkte darstellt. Und genau das werden wir uns in diesem Abschnitt ansehen.
Übersicht Unity 3D Tutorial
1/12 – Einrichtung und Installation
2/12 – 3D Character hinzufügen
3/12 – Level Design (Whiteboxing)
4/12 – Level mit Assets erstellen
5/12 – Lighting (Licht erstellen)
6/12 – Interaktive Objekte erstellen
7/12 – NPC, Gegner und Pathfinding erstellen
8/12 – User Interface mit Lebensanzeige (aktueller Artikel)
9/12 – Neustart mit Respawn Funktion
10/12 – Scene und Level wechseln
11/12 – Postprocessing und Kamera Effekte
12/12 – Hauptmenü erstellen und Export Anwendung
User Interface hinzufügen
Im ersten Schritt wollen wir das User Interface hinzufügen. Dazu nutzen wir ein Prefabs aus dem 3D Gamekit. Navigiere dazu in den Ordner 3D Gamekit -> Prefabs -> UIPrefabs. Dort findest du das Prefab HealthCanvas. Es besteht auch die Möglichkeit eine neue UI zu erstellen. Das kann mit den Elementen über das Pluszeichen in der Hierarchie und dann UI durchgeführt werden. In diesem Unity 3D Tutorial wollen uns aber auf das vorgefertigte User Interface fokussieren. Um es zu verwenden, kannst du es per Drag and Drop in die Hierarchie importieren.
User Interface hinzufügen
Im GameObject HealthCanvas und der Komponente Represented Damageable ist es notwendig, den 3D Character zu verlinken. Durch diese Referenz wird das User Interface mit dem Schaden des Characters verlinkt. Sobald dieser vom Gegner attackiert und getroffen wird, entsteht ein Schaden und das hat wiederrum Einfluss auf die UI. In unserem Fall soll dadurch ein Leben in der Anzeige abgezogen werden. Es gibt aber auch den Fall, dass über ein Medikit die Anzeige erneuert wird. Auch das wird über diese Einstellung sichergestellt.
Bevor wir weitere Einstellungen vornehmen, testen wir die 3D Anwendung über den Play-Button. Das User Interface sollte jetzt in der oberen linken Ecke erscheinen. Die Anzeige wird dynamisch über Variablen generiert. Das ist ein großer Vorteil gegenüber einer statischen Erstellung. Denn damit kann die UI mit einer einzigen Variable verändert werden. Dazu aber gleich mehr.
Wird der Character jetzt von einem Gegner attackiert, erhält er einen Schaden. Allerdings wird die UI nicht aktualisiert. Das werden wir jetzt ändern.
Einstellungen für User Interface
Um die UI mit der Lebensanzeige zu aktualisieren, müssen wir Einstellungen beim Character vornehmen. Klicke dazu auf das GameObject Ellen und anschließend auf die Komponente Damageable (Script). Dort findest du zum einen den Parameter Max Hit Points. Dieser definiert die maximale Anzahl an möglichem Schaden. Dadurch wird die UI auch entsprechend dynamisch generiert. Zum anderen gibt es die Invulnerabilty Time. Diese gibt an, wie lange der Character nach einem Schaden unverwundbar ist. Beide kannst du beliebig anpassen.
Es gilt jetzt noch eine Verlinkung zum Event zu definieren, wenn der Character einen Schaden erhält. Das findest du unter On Receive Damage (). Dort gilt es eine Verlinkung zum Health System einzufügen. Bei None klickst du auf den Auswahlbutton und wählst Scene. Anschließend verlinkst du das HealthCanvas. Du kannst aber genauso gut das GameObject aus der Hierarchie per Drag and Drop hier platzieren. Und zu guter Letzt müssen wir noch die jeweilige Funktion auswählen, die beim Event On Receive Damage ausgeführt werden soll. In unserem Fall ist das ChangeHitPointUI.
User Interface Einstellungen
Jetzt kannst du das gleich nochmal testen. Das User Interface war vorher ja bereits vorhanden. Lediglich die Funktion zum Aktualisieren der UI hat gefehlt. Mit dieser Anpassung sollte sich die Lebensanzeige bei einem Schaden verändern.
Hinweis: Mit dem ultimativen Unity Cheat Sheet erhältst du einen detaillierten Überblick über Tipps & Tricks mit dem Umgang von Unity. Sichere dir jetzt das Cheat Sheet, um deine Anwendungen noch einfacher und effektiver erstellen zu können!
Bestimmte Parameter für User Interface anpassen
Wie vorhin erwähnt, gibt es im GameObject Ellen in der Komponente Damageable (Script) verschiedene Parameter. Dazu zählt auch Max Hit Points. Wird dieser auf einen anderen Wert geändert wie beispielsweise 3, so verändert sich auch die UI. Es werden statt 5 nur noch 3 Leben angezeigt. Das User Interface ist durch diese Parameter dynamisch veränderbar. Das bietet den großen Vorteil nicht das Skript selbst ändern zu müssen, sondern lediglich einen Parameter.
Ein weiterer Schritt ist jetzt noch die Lebensanzeige zurückzusetzen. Das lässt sich zum Beispiel über ein Medikit umsetzen.
Anpassung User Interface mit 3 Leben
User Interface mit Medikit zurücksetzen
Um die Lebensanzeige zurückzusetzen, wollen wir ein Medikit verwenden. Dieses findest du im Ordner 3D Gamekit -> Prefabs -> Interactables. Das Prefab HealthCrate kannst du anschließend an einer beliebigen Position in der Szene platzieren. Auch hier müssen wir das Damageable (Script) verlinken.
Wähle dazu das platzierte Medikit und navigiere zur Komponente Interact on Trigger (Event). Dort findest du das Event On Enter (). Es sind bereits verschiedene Funktionen eingetragen, die durch dieses Event ausgeführt werden. Um nun die UI zurückzusetzen, ist es wichtig, einen neuen Eintrag über das Pluszeichen zu erzeugen. Danach verlinkst du das GameObject Ellen und wählst unter Damageable die Funktion Reset Damage. Damit wird zunächst der Schaden im Character zurückgesetzt.
Schaden bei Character zurücksetzen
Um zusätzlich die UI anzupassen, müssen wir noch eine weitere Einstellung vornehmen. Aktuell wird der Schaden nur beim Character zurückgesetzt. Das ändern wir, indem wir bei Ellen in der Komponente Damageable (Script) das User Interface verlinken. Dort gibt es das Event On Reset Damage(). Das bedeutet, sobald der Schaden im Character zurückgesetzt wird, soll eine Funktion ausgeführt werden, welche die UI anpasst. Dazu verlinkst du das Game Object HealthCanvas und wählst die Funktion ChangeHitPointUI unter Damageable.
Schaden im User Interface zurücksetzen
Durch alle diese Einstellungen wird die Lebensanzeige durch einen Schaden verringert und durch das Medikit zurückgesetzt. Du kannst die Anwendung gleich einmal testen. Im nächsten Teil des Unity 3D Tutorials werden wir uns dann um die Respawn Logik kümmern. Sobald der Character eliminiert wird, soll dieser an einer bestimmten Position neu erscheinen.