Unity 3D-Tutorial: #29 – Bestzeit ermitteln
Dieser 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
Hallo Carsten
Ich habe die Menues gut hinbekommen, funktioniert in Unity auch bestens. Wenn ich jedoch eine PC-Version speichere und diese öffne, sehe ich diese Buttons nicht! Woran kann das liegen?
mfg
Hi Andy,
was meinst du mit „Pc-Version speichern“? Meinst Du, dass Du mit „Build“ das Spiel kompiliert hast?
genau, mit build. Dann sehe ich keine Buttons… ich weiss nicht wo der fehler liegt, im unity alles ok
es funktioniert jetzt 🙂 es war eine andere Scene (anderes Hauptmenu) das die erste gestört hat… irgendwie 🙂
Supi, dann ist ja alles in Ordnung!
Carsten
Hi Carsten…Deine Tutorials sind immer noch die besten 😀 😀 😀
Und jetzt komm ich mal zu meiner Frage :
Könntest du vielleicht ein Tutorial machen in dem du erklärst wie mann ein spiel über „lan“ spielen kann ????
Ich habe mir gestern erst eine art „tutorial“ gedownloadet in dem es darum ging wie man so etwas macht … Also da waren dann auch die ganzen scripte dabei ….. Leider hab ich vergessen wie das hieß aber sobald ich die seite wieder gefunden hab werde ich es hier rein posten 😆 😆 😆
(Das würde dann vllt ein 5 min. tut werden ,weil,wie schon gesagt,die ganzen scipte schon vorhanden ( ein chatt und ein menü ist schon vorhanden ..)
ich werde die seite dann hier reinposten
wär schön wenn du dann ein tut darüber machen könntest 😀 😀 😀
Also ich hab jetzt das tut gefunden..
http://forum.unity3d.com/viewtopic.php?t=30788
(downloade dir am besten die .zip datei :grin:)
Du kannst ja mal damit rumspielen und dann dir überlegen ob du diese datei irgendwie ins spiel einbringen willst
Wär nämlich ziemlich cool denn ich will mit meinem cousin ne kleine lan -party machen und da wollte ich ein selbstgemachtes game mitbringen
UND ich hätte noch eine SUPER Idee für ein tut :
PASSWÖRTER 😀 😀 😀 😀
Mensch, bei Deinen ganzen Ideen komm ich langsam gar nicht mehr hinterher 😉