TimeScaleManager - Pause & Zeitlupe in Unity umsetzen

Wäre es nicht schön, wenn man ab und zu einfach die Zeit anhalten könnte? In der Realität bleibt uns diese Möglichkeit leider verwehrt. Aber in Unity kann man die Zeit manipulieren. Man kann sie verlangsamen oder ganz anhalten. Und damit das von überall einfach möglich ist, habe ich den TimeScaleManager geschrieben.

Wie man die Zeit anhält

Der TimeScaleManager ist wieder ein relativ kleines, aber sehr nützliches Werkzeug. Die Zeit kann angehalten und gestoppt werden. Außerdem kann man überprüfen, ob die Zeit gerade angehalten wurde und entsprechend reagieren. Behaviours nutzen dies zum Beispiel, um AudioSources stumm zu schalten, wenn der Spieler das Spiel angehalten hat.

Du kannst das Spiel pausieren:

TimeScaleManager.service?.Pause();

Du kannst das Spiel auch wieder weiter laufen lassen:

TimeScaleManager.service?.Resume();

Du kannst die Zeit verlangsamen (oder beschleunigen):

TimeScaleManager.service?.SetTimeScale(0.5f);

Und Du kannst prüfen, ob das Spiel gerade pausiert ist:

if (TimeScaleManager.service?.IsPaused) {
  // Do stuff...
}

Dein Feedback ist wichtig!

Was hältst Du von den hier vorgestellten Services? Fehlt Dir etwas oder funktioniert etwas nicht wie erwartet? Wie immer freue ich mich über Feedback. Lass mich gerne wissen was Du über dieses Modul denkst. Dafür kannst Du zum Beispiel die Kommentarfunktion unter dem Artikel nutzen. Weitere Kontakt-Möglichkeiten findest Du auf hier. Wenn Du einen Bug gefunden hast oder Dir eine Erweiterung wünscht, erstelle bitte einen Issue im GitHub-Repository. Weitere Dokumentation findest Du wie immer in der README des entsprechenden Moduls.

Noch keine Kommentare vorhanden.