Skip to content

Beta

  • Inhalt
  • Gamesübersicht
  • Games & Lyrik Podcast
  • Pressezentrum und Media-Kit
  • Jobs
  • Veröffentlichte E-Books
  • Impressum
    • Datenschutzerklärung
    • Disclaimer
  • Cookie-Richtlinie (EU)
  • Toggle search form
  • Bertram Fiddle 2
    Die Abenteuer von Bertram Fiddle – Ein haariger Fall Games und Lyrik
  • TinyBuild Logo
    tinyBuild Spieleentwickler
  • Murder Manor0
    Murder Manor – Adventure Escape Adventure
  • The Adventures of Pinocchio Beta Screenshot
    Die Abenteuer von Pinocchio Beta Games und Lyrik
  • Reindeer Squabble
    Reindeer-Squabble Games und Lyrik
  • Haunted Cover
    Haunted Games und Lyrik
  • Steel Assault: PC und Switch release Games und Lyrik
  • Mini Dayz 2 Cover
    Mini DayZ 2 Games und Lyrik

Game Over in Unity

Posted on 08/06/2020 By Claudia Wendt Keine Kommentare zu Game Over in Unity

Game Over lässt sich ungünstig über ein Spieleobjekt definieren. Sinnvoll ist dafür ein Spielemanager.

Erstelle im Hierarchiefenster ein Object, wähle mit der rechten Maustaste die Transformkomponente im Inspectorfenster und setze es auf Reset. Anschließend benenne das Objekt als GameManager.

Füge eine neue Komponente hinzu und nenne sie GameManager. Diese Komponente ist dafür verantwortlich, Stati im Spiel zu verändern. Über den Game Manager lässt sich das Spiel starten, beenden oder neu starten. Auch ein Scorecounter lässt sich platzieren. Zielsetzung vom neuen Script ist es in diesem Fall, das Spiel neu zu starten, wenn du Game Over gehst.

Erstelle eine eigene neue Funktion:

void Endgame

Du benötigst eine Möglichkeit, auf den GameManager zuzugreifen und die Funktion aufzurufen.

Mit dem Zusatz Debug.Log(„GAME OVER“); sendest du an die Unity-Konsole „Game Over als Ausgabe und siehst, ob die Funktion zum richtigen Zeitpunkt aufgerufen wird.

Um auf die Funktion zugreifen zu können, benötigst du das Player Collision Script vom Spieler.

Füge dort eine Komponente für den Game Manager ein:

public GameManager GameManager;

Als nächstes erstelle von deiner Spielfigur ein Prefab. Lösche anschließend den Spieler aus deiner Szene. Ziehe den Spieler wieder in die Szene und du siehst, dass der Spieler nicht mit dem GameManager verknüpft ist.

Im Endeffekt benutzt man in diesem Fall keine Variable, sondern löscht diese wieder.

Du benutzt zum Finden des GameManager:

FindObjectOfType<GameManager>( );

Dies fügst du an der Stelle ein, an welcher das Spiel beendet werden soll.

Eine ähnliche Funktion hat: GetComponent<>

Ändere im Script vom GameManager

void Endgame

zu

public void Endgame

Jetzt kannst du die Änderung im PlayerCollision-Script vornehmen.

Bei der MainCamera und beim TextCanvas musst du jetzt den Player hineinziehen, damit eine Referenz zum Player geschaffen wird. Ansonsten bekommst du eine Fehlermeldung.

Zusätzlich soll Game Over angezeigt werden, wenn der Charakter beispielsweise von einer Plattform fällt.

Die Voraussetzung wird im PlayerMovement-Script geschaffen. Wenn der Spieler auf einer Achse unter einem bestimmten Wert ist, wird Game Over angezeigt.

Im PlayerMovement-Script ergänze dies bei FixedUpdate:

if (rb.position.y < -1f)

{

FindObjectOfType<GameManager>( ).Endgame( );

}

Das PlayerMovement-Script sieht dann folgendermaßen aus:

Jetzt soll Game Over nur einmal angezeigt werden.

Dafür wird eine Änderung im GameManager vorgenommen:

bool gameHasEnded = false;

Unter public voide kommt:

if (gameHasEnded == false)

{

gameHasEnded = true;

Debug.Log(„Game Over“);

}

Damit endet das Spiel nur einmal:

Zuletzt soll das Spiel neu gestartet werden:

Dies wird im GameManager eingefügt:

void Restart ( ) benötigst du als separate Funktion.

Unter Debug.Log fügst du:

Restart( );

Eine weitere Funktion, die du unter using UnityEngine einfügst ist:

using UnityEngine.SceneManagement;

Dies wird für andere Szenen verwendet oder für den Szenenneustart.

Jetzt fügst du in die geschweiften Klammern unter void Restart ein:

SceneManager.LoadScene(SceneManager.GetActiveScene().name);

Dies bedeutet, dass du die aktive Szene vom Scene Manager neu lädst.

.name steht für den aktuellen Namen deiner Szene.

Der Neustart vom Spiel vollzieht sich zur Zeit sehr schnell.

Deswegen öffnen wir Lighting in Unity. Veränderst du etwas an deinem Spiel, macht es Sinn, die Lichteffekte neu berechnen zu lassen. Wähle Build Lighting.

Jetzt verwendest du neue Parameter:

Ersetze Restart durch Invoke („Restart“) im GameManager-Script. Dahinter setzt du die Zeit, die vergehen soll, bis die Funktion „Restart“ aufgerufen wird.

Invoke („Restart“, 2f);

Die Verzögerung wird jetzt zu einer Variablen gemacht.

Unter bool füge hinzu:

public float restartDelay = 1f;

Anstelle der 2f unten, setzt du jetzt die Variable.

Das fertige Script sieht folgendermaßen aus:

Spieleprogrammierung Tags:Unity

Beitragsnavigation

Previous Post: Wie du einen Punktezähler per Script einbaust
Next Post: Super Adventure Rockman

Related Posts

  • Unity – Mit Audiokomponenten arbeiten Spieleprogrammierung
  • Knotenarbeitsbereich
    Was ist der Visual Effect Graph in Unity? Spieleprogrammierung
  • Sprite Mask Benutzerdefiniert
    Was ist eine Sprite Mask? Spieleprogrammierung
  • Sprite Atlas0
    Der Sprite Atlas Spieleprogrammierung
  • Events
    Events im Visual Effect Graph Spieleprogrammierung
  • Zusätzliche Post Processing Override Scenarios zur Szene hinzufügen Spieleprogrammierung

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Archives

  • November 2023
  • August 2023
  • Juli 2023
  • April 2023
  • März 2023
  • Februar 2023
  • Januar 2023
  • Dezember 2022
  • November 2022
  • Oktober 2022
  • September 2022
  • August 2022
  • Juli 2022
  • Juni 2022
  • Mai 2022
  • April 2022
  • März 2022
  • Februar 2022
  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021
  • August 2021
  • Juli 2021
  • Juni 2021
  • Mai 2021
  • April 2021
  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • November 2020
  • Oktober 2020
  • September 2020
  • August 2020
  • Juli 2020
  • Juni 2020

Categories

  • Action
  • Adventure
  • Adventure Escape
  • Brettspiele
  • Games und Lyrik
  • Geschicklichkeit
  • Hack and Slash
  • Horror
  • Kartenspiele
  • Liebe
  • Lyrik
  • Point-and-Click-Adventure
  • Puzzle
  • Rennspiele
  • Rogue-like
  • RPG
  • Shoot Em Up
  • Shooter
  • Simulation
  • Spieleentwickler
  • Spieleprogrammierung
  • Sport
  • Strategie
  • Survival
  • Textadventure
  • Tower-Defense
  • Uncategorized
  • Wimmelbild
  • Wirtschaftssimulation

Recent Posts

  • ProtoCorgi
  • Rosewater
  • Prim
  • Soccer Story
  • Application Systems Heidelberg

Recent Comments

  1. A WordPress Commenter zu Hello world!
  2. Rita zu Catch me!
  3. cvd zu Heart of Muriet
  4. cvd zu Heart of Muriet
  5. Gordon zu Jasper and the City of Lights
  • Die Wolke Lyrik
  • ACME Animation Factory SNES
    ACME Animation Factory Games und Lyrik
  • Mega Man Zero 4 Screenshot
    Der Schneemann Lyrik
  • Spin Rhythm Screenshot0
    Spin Rhythm XD Games und Lyrik
  • Alphabounce
    Alphabounce – Interstellarer Brick-Breaker Geschicklichkeit
  • NVYVE Studios
    NVYVE Studios Spieleentwickler
  • Riftbreaker_keyart_box
    The Riftbreaker Strategie
  • Before Your Eyes Cover
    Before your Eyes Adventure

Copyright © 2026 Beta.

Powered by PressBook News Dark theme