Zum Hauptinhalt springen

User Interface

Für unser Spiel ist es entscheidend, dass die Benutzeroberfläche (UI) nicht nur funktional, sondern auch intuitiv und klar verständlich ist. Eine schlechte oder verwirrende UI kann in Spielen schnell zu Frustration führen und das Spielerlebnis beeinträchtigen, besonders bei einem Genre wie dem Dungeon Crawler, wo viele Aktionen schnell ausgeführt werden müssen wie z.B. das Ausrüsten oder Schatztruhen öffnen.

Um eine benutzerfreundliche Oberfläche zu schaffen, haben wir uns an bekannten Spielen aus dem Survival- und Crafting-Genre orientiert - insbesondere Minecraft und Rust.

Inventarsystem

Das Inventarsystem ist eng mit der UI verknüpft. Jeder aufgesammelte Gegenstand wird im Inventar angezeigt und kann direkt über die Benutzeroberfläche verwaltet werden. Es basiert auf sogenannten InventorySlot- und InventoryItem-Komponenten, die über Skripte mit den Itemdaten (Scriptable Objects) verbunden sind.

  • Jedes UI-Slot-Element ist mit einem Slot im Inventarsystem des Spielers verknüpft.
  • Beim Aufheben eines Items wird eine Instanz im PlayerInventoryManager hinzugefügt und die UI automatisch aktualisiert.
  • Items können per Drag & Drop bewegt, gestapelt oder entfernt werden.
  • Ein Tooltip-Fenster liefert Informationen wie Seltenheit, Beschreibung und Werte des Items.

Ingame UI InventoryItemSlot InventoryItemToolTip

Schatztruheninventar

Neben dem Spielerinventar gibt es Schatztruhen, die ebenfalls über ein eigenes Inventar verfügen. Diese sind temporär sichtbar, wenn sich der Spieler in der Nähe befindet.

  • Jede Truhe hat ein eigenes ChestInventoryManager-Objekt.
  • Die UI aktualisiert sich dynamisch, je nachdem, welche Truhe aktuell geöffnet ist.
  • Das Wechseln oder Verlassen einer Truhe schließt die Anzeige automatisch.

Hier war es wichtig, saubere Referenzen zur jeweils aktiven Truhe zu halten, andernfalls wurde das falsche Inventar angezeigt. Wir haben eine Truhe mit Inventar als Prefab gespeichert, die beim Instanziieren Items in den InventarSlots zuweist.

ChestInventory

Ausrüsten und Wechseln von Gegenständen

Das Inventarsystem unterstützt auch Ausrüstungsslots (Waffen und Rüstung). Diese sind durch spezielle Slot-Typen und visuell durch Symbole gekennzeichnet.

  • Nur kompatible Items können in bestimmte Slots gezogen werden (z. B. Rüstung ≠ Heiltrank).
  • Beim Ausrüsten werden Statuswerte angepasst und das 3D-Modell visuell verändert.

Dynamisches UI-Feedback

  • Die UI zeigt aktive Effekte an
  • Fehlermeldungen (z.B. "Kein Mana") oder Statusanzeigen (z.B. "Item benutzt") werden über ein NotificationManager-System eingeblendet.
  • Für Aktionen wie "Waffe wechseln" oder "Trank verwenden" gibt es visuelle Rückmeldungen in Form von kleinen Animationen oder Sounds.

Notifikation

Arbeit mit Unitys UI Tools

Das Erstellen der Benutzeroberfläche war dank Unitys UI-System recht einfach. Man konnte UI-Elemente wie Buttons, Bilder oder Textfelder direkt im Editor platzieren, verschieben und anpassen. Dadurch konnten wir schnell erste Layouts ausprobieren und verändern. Wir haben für die meisten UI-Elemente Prefabs erstellt, z. B. für die Inventarslots oder das Tooltip-Fenster. Diese können wir dann wiederverwenden, zum Beispiel für Schatztruhen oder das Inventar des Spielers. Für die Icons haben wir Bilder aus Game-Icons verwendet.

Damit die UI auf verschiedenen Bildschirmgrößen funktioniert, mussten wir das Canvas-System richtig einstellen. Hier war es vor allem wichtig, mit Ankern und Skalierungen zu arbeiten, damit die UI-Elemente nicht verrutschen oder zu groß werden.

Insgesamt war die Arbeit mit Unitys UI-Tools sehr angenehm, da man viel visuell machen konnte und nicht alles per Code umsetzen musste. Modelle