Unity 3D-Tutorial: #29 – Bestzeit ermitteln

Unity3D CarRacing TutorialDieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity 3D Tutorial Serie .

Unser Spiel wächst immer weiter. Mittlerweile haben wir ein fahrtüchtiges Auto, ein Startmenü, einen Countdown und eine Zeitmessung.

In diesem Teil wollen wir die gefahrene Bestzeit ermitteln und einen kleinen Dialog entwickeln, der am Ende eines Rennens erscheint. Aber auch das Programmieren eines Highscores werde ich behandeln.

Tutorial-Inhalt

Wenn wir am Ende unseres Zeitrennens über die Ziellinie fahren hört unsere Zeit auf zu laufen. Um nun aber festzustellen, ob unsere Zeit auch eine gute war, sollte man die Zeit mit den bisher gefahrenen Zeiten vergleichen und dem Spieler eine Rückmeldung über seinen Erfolg geben.

Hierfür will ich das Wissen aus dem letzten Unity- Tutorial über die PlayerPrefs-Klasse nutzen und die Bestzeit abspeichern.

Am Ende eines Spiels werde ich dann die gefahrene Zeit mit dieser vergleichen und ggf. einen kleinen Gratulations-Dialog erscheinen lassen. Natürlich könnte man diesen auch mit Medaillen-Grafiken oder Animationen erweiteren. Aber hier geht es nur um das Grundsätzliche.

Um dann wieder in das Hauptmenü zurück zukehren, lassen wir noch zusätzlich immer am Spiel-Ende noch einen Zurück-Button erscheinen.

Video-Tutorial

Genug geschrieben, hier ist nun das Video:

Highscore in Unity

In dem Video hatte ich ja bereits angesprochen, dass es meistens nicht nur eine einfache Bestzeit gibt, sondern das es meistens Highscore-Tabellen gibt. In diesen werden dann z.B. die besten 10 Spieler aufgelistet.

Da diese natürlich komplexer sind und ich hier erstmal nur eine kleine Lösung für unser Rennspiel demonstrieren wollte, möchte ich Euch trotzdem ein paar Infos und ein gutes Script-Beispiel dazu geben.

Highscore mit einer MySQL-Datenbank

Wenn Ihr zum Beispiel die Bestzeiten verschiedener Spieler eines Browsergames in einem Highscore darstellen wollt, dann benötigt Ihr hier eine SQL-Datenbank, beispielsweise MySQL. In dieser speichert Ihr dann die einzelnen Daten ab, um sie dann später wieder auszugeben.

Für eine solche Datenbank-Integration benötigt Ihr natürlich erstmal eine Datenbank mit einer Highscore-Tabelle, sowie einer Möglichkeit Eure Bestzeit dort einzutragen und eine weitere, um die Bestzeiten auszulesen und diese in Unity anzuzeigen.

Auf der UnifyCommunity – Seite findet Ihr einen solchen Highscore mit allen dazugehörigen Scripten.

Lokaler Highscore

Bei einem Desktop-Game kann ein solcher Highscore auch mit der PlayerPrefs-Klasse erstellt werden. Wobei dieser natürlich etwas umfangreicher ausfallen würde, als mein im Video gezeigtes Beispiel. Einen Ansatz  für solch einen Highscore findet Ihr hier.

Hier geht es weiter zum nächsten Unity 3D-Tutorial: #30 – Prefabs

Comments
  1. Andy
  2. Andy
  3. Andy
  4. Jonah
  5. Jonah
  6. Jonah