Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Hauptmenü Erstellen | Spiel Verbessern
Kampfspiel in Unity
course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
Hauptmenü Erstellen

Hauptmenü

Skript für das Hauptmenü

Die MainUI-Klasse ist ein einfaches Skript, das Funktionalität zum Starten des Spiels und Beenden der Anwendung bietet. Dieses Skript soll mit UI-Buttons in Unity verwendet werden.

Klassendefinition und Methoden

Die Methode StatTheGame ist dafür konzipiert, das Spiel zu starten, indem eine neue Szene geladen wird. Genauer gesagt weist SceneManager.LoadScene(1) Unity an, die Szene mit dem Build-Index 1 zu laden, was ihrer Position in den Build-Einstellungen entspricht.

Die Quit-Methode ermöglicht es, die Anwendung zu schließen, indem Application.Quit() aufgerufen wird, obwohl diese Funktionalität nur in einer gebauten Anwendung und nicht im Unity-Editor wirksam ist.

Verwendung in Unity

Anfügen des Skripts

Erstellen Sie ein GameObject (z.B. ein leeres GameObject oder ein UI-Element). Fügen Sie das MainUI-Skript dem GameObject hinzu, indem Sie das Skript darauf ziehen oder die Schaltfläche Add Component im Inspektor verwenden.

Einrichten von UI-Buttons

Erstellen Sie einen UI-Button (z.B. GameObject > UI > Button). Wählen Sie den Button aus und gehen Sie zum Inspektor. Im Abschnitt On Click () klicken Sie auf die +-Schaltfläche, um ein neues Ereignis hinzuzufügen. Ziehen Sie das GameObject mit dem angehängten MainUI-Skript in das Objektfeld. Wählen Sie aus dem Dropdown-Menü MainUI > functionName.

Spielmanager

Skript für Spielmanager

Die GameManager-Klasse ist verantwortlich für die Verwaltung des Spielzustands. Sie verwendet ein Singleton-Muster, um sicherzustellen, dass es nur eine Instanz von GameManager im Spiel gibt, verwaltet den Spielzustand und sendet Zustandsänderungen über Ereignisse aus.

Klassendefinition und Mitgliedsvariablen

Methoden

Awake-Methode

Zweck: Stellt sicher, dass es nur eine Instanz von GameManager gibt und verhindert, dass sie beim Laden neuer Szenen zerstört wird.

Singleton-Muster: Überprüft, ob bereits eine Instanz existiert. Falls ja, zerstört es das Duplikat. Andernfalls weist es die Instanz zu und markiert das Objekt, um beim Laden einer neuen Szene nicht zerstört zu werden.

Start-Methode

Zweck: Initialisiert den Spielstatus auf Playing, wenn das Spiel startet, und löst das onGameStateChanges-Ereignis aus.

FinishGame-Methode

Zweck: Setzt den Spielstatus auf Finished und löst das onGameStateChanges-Ereignis aus.

GameStates-Enum

Zweck: Definiert die möglichen Zustände des Spiels.

Gegner reagiert auf Spielzustandsänderungen

Diese Methode behandelt die Änderungen des Spielzustands. Wenn der Spielzustand auf Finished wechselt, wird der Zustand des Gegners auf idle geändert.

Abschluss-Panel

Skript für Abschluss-Panel

Die FinishPanel-Klasse verwaltet die Anzeige und Funktionalität des Abschluss-Panels, das erscheint, wenn das Spiel endet. Dieses Panel gibt dem Spieler Feedback darüber, ob er gewonnen oder verloren hat, und bietet Optionen, um zum Hauptmenü zurückzukehren oder das Spiel zu beenden.

Erklärung

Methoden

Start-Methode

Zweck: Abonniert das GameManager.onGameStateChanges-Ereignis, um Änderungen im Spielstatus zu überwachen.

GameManager_onGameStateChanges-Methode

Zweck: Behandelt die Änderungen des Spielstatus. Wenn der Spielstatus Finished ist, wird das Abschluss-Panel aktiviert und OnGameFinished aufgerufen.

OnGameFinished Methode

Zweck: Aktualisiert den Text des Abschlussfensters basierend darauf, ob der Spieler tot oder lebendig ist.

Logik: Wenn der Spieler tot ist, setzt die Methode den Text auf "You lost" in Rot. Wenn der Spieler lebt, setzt sie den Text auf "You Won" in Grün.

BackToMainMenu Methode

Zweck: Lädt die Hauptmenü-Szene (Build-Index 0), wenn sie aufgerufen wird. Diese Methode soll mit einem Button in der Benutzeroberfläche verknüpft werden.

Quit Methode

Zweck: Beendet die Anwendung, wenn sie aufgerufen wird. Diese Methode soll mit einem Button in der Benutzeroberfläche verknüpft werden.

Zusammenfassung

Die FinishPanel-Klasse zeigt die Endergebnisse des Spiels an und bietet Optionen, um zum Hauptmenü zurückzukehren oder das Spiel zu beenden. Sie abonniert GameManager.onGameStateChanges, um sich entsprechend zu aktualisieren, wenn das Spiel endet, und verbessert so die Benutzererfahrung mit klaren Rückmeldungen und intuitiven Optionen.

1. Was passiert, wenn die Methode FinishGame in der GameManager-Klasse aufgerufen wird?

2. Was passiert, wenn der GameManager den Spielstatus auf GameStates.Finished ändert?

Was passiert, wenn die Methode `FinishGame` in der `GameManager`-Klasse aufgerufen wird?

Was passiert, wenn die Methode FinishGame in der GameManager-Klasse aufgerufen wird?

Wählen Sie die richtige Antwort aus

Was passiert, wenn der `GameManager` den Spielstatus auf `GameStates.Finished` ändert?

Was passiert, wenn der GameManager den Spielstatus auf GameStates.Finished ändert?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt