Unity 3D-Tutorial: #25 – Hauptmenü mit LoadLevel
Dieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity 3D Tutorial Serie
Im letzten Tutorial hatten wir mit dem Messen unserer Fahrzeit unser Zeitrennen abgeschlossen.
Dieses Mal wollen wir damit beginnen ein Hauptmenü für unser Autorennspiel zu programmieren.
Tutorial-Inhalt
Bevor ein Game startet haben die Spieler normalerweise immer die Möglichkeit verschiedene Einstellungen vorzunehmen, die dann in das Spiel übernommen werden. Genau dies wollen wir auch machen.
Im ersten Schritt will ich hierfür mit Euch eine neue Scene erstellen, die dieses Hauptmenü beinhaltet.
Das Menü wird in diesem Tutorial recht einfach ausfallen und wird nur lediglich einen Start-Button bestitzen, über den wir das bereits programmierte Zeitrennen starten.
Dabei werden wir auf die Application-Klasse und der LoadLevel-Funktion zurückgreifen. Allerdings sind hierbei einige Details zu beachten, die wir in in Unity einstellen müssen, da ansonsten das Ganze nicht funktioniert. Aber dies werdet ihr ja alles in dem Video sehen.
In den nächsten Tutorials werden dann weitere Features wie das Eingeben von persönlichen Daten, die dann in das Spiel übernommen werden, folgen. Aber auch Animationen werden wir für das Hauptmenü erstellen, die die Szene interessanter machen werden.
Video-Tutorial
Es ist ein relativ kurzes Tutorial geworden, was aber nicht bedeutet, dass der Inhalt nicht weniger interessant ist. Ich hoffe, dass Euch auch diese Unity-Video gefällt. Viel Spaß!
Noch Fragen zu dem Video? War etwas unklar? Unten habt ihr genügend Platz Eure Meinungen und Verbesserungsvorschläge kund zu tun. Ich bin gespannt!
Hier geht es zum nächsten Unity 3D-Tutorial: #26 – Animation
WOW,echt gutes tutorial 😀 😀
Ich hätte noch ein paar ideen für weitere Tutorials :
1. Ein Button zum beenden des spiels
2. KI’s
und 3. Vieleicht noch sozusagen „Controllpunkte“ ,über die man drüber fahren MUSS um in das nächste lvl zu kommen . Sonst kann man ja ganz einfach abkürzen
😀 😀 😀 😀
Genial 🙂
Aber irgend was stimmt nicht oder mache ich falsch 🙁
Wie schon in dem „Tachoanzeige“ Tutorial kann ich weder den Button noch den Tacho an eine andere Position legen. Ich kann die werte in den Javascript Dateien ändern wie ich möchte aber der Button und der Tacho bleiben oben Links 🙁
Aber Respekt für diese Tutorial-Serie 😉
@Jonah: Mal schauen, was ich von den Ideen im Tutorial umsetzen werde 🙂
@StolleJay: Danke! Hmmm, das klingt ja merkwürdig. Poste doch mal den GUI-Teil, den du programmiert hast. Dann wollen wir mal schauen 🙂
Hi Carsten
könntest du vielleicht dein ,bis jetzt,GESAMTES spiel hier auf dem Blog zum download bereitstellen ???
Das würde nämlich manchen ,wie z.B. Stolle Jay, auch weiterhelfen …
wenn nämlich jemand nicht mit dem reifenquitschen oder sonst was klarkommt würde es demjenigen sehr helfen (wie z.B. auch mir)
Aber wenn der Blog dann zu überlastet ist lass es lieber sein,wär aber schön wenn es ginge 😀 😀 😀 😀 😀
Wenn Carsten möchte übernehme ich den Traffic gern.
Ich würde dann das Spiel auf meinen Server hoch laden und er braucht nur einen Link hier einfügen wenn er den Traffic nicht möchte 😉
Aber das überlassen wir unseren Carsten 🙂
Ach was ich vergessen hatte 😳 Sorr für das Doppelkommentar 😳
Hoffentlich machst du bald den KI-Verkehr denn den brauch ich dringend ^^
Hallo noch mal,
Das mit den Buttons Funktioniert jetzt. Was der Fehler war weiß ich nicht. Ich hab es einfach noch mal versucht und voila… es hat geklappt 😀
Der Übersicht halber kannst/solltest du den Beitrag oben Löschen da das Problem ja nun behoben ist!
Und nun noch ein Vorschlag:
Kannst du in deinem 2. Menü-Tutorial beschreiben/zeigen wie man die Buttons passend an den Rechten & Unteren Rand bekommt?
einfach dir werte ändern . Also :
if (GUI.Button(Rect(10, 50, 300, 100), “Start”)) {
und anstatt 10,50,300,100 was anderes eingeben z.B. 20,30,600,50
musst du eben ausprobieren das es stimmt
Naja das Problem ist…
Ich hatte meinen Button zum Test auf Top (also die 2. Zahl) auf 600 gestellt und im Browser war der Button dann nicht sichtbar weil er zu weit unten war. Und bei den Unterschiedlichen Auflösungen heutzutage ist das keine Lösung 🙁
Mit % Angaben währe das dann schon eher machbar aber das hab ich noch nicht hin bekommen.
@Stollejay: Mit Screen.height und Screen.width bekommst Du die aktuelle Fenstergröße. Davon abhängig könntest Du dann deine Buttons setzen. Aber schön, dass sich das andere Problem von alleine erledigt hat!
Was das Hochladen des Projektes angeht, muss ich mal sehen. Da ich das Tutorial-Projekt zum Rumspielen nutze und deshalb viele Daten und Dateien drin sind, die nichts mit dem Tutorial zu tun haben, müsste ich da ne Menge anpassen. Da es sonst nicht funktioniert, wäre das Ganze relativ witzlos… Mal schauen 😉
Was für Probleme habt ihr denn beim Reifenquietschen?
Ich hab jetzt „Screen.SetResolution (800, 600, true);“ in die Menu.js geschrieben. Muss ich das „Screen.SetResolution“ jetzt in jede .js Datei schreiben?
Da es leider keinen Chat oder Forum gibt frage ich hier gleich noch mal…
1. Gibt es eine Möglichkeit ein Menü (Also Szene) über eine Art Trigger aufzurufen?
z.B. man fährt in/über einen bestimmten Punkt und beim betätigen der „Enter“-Taste kommt man dann in ein Menü. Wenn man aus dem Menü wieder raus geht kann man bei dem Trigger wo man in das Menü gegangen ist wieder weiter fahren.
2. Gibt es eine Möglichkeit wenn man z.B. in einem (wie in Punkt 1) Menü ist/geht das dort das derzeitig gewählte Fahrzeug steht?
3. Kann man sein Fahrzeug Tunen (Front, Heckstoßstange etc.) und dieses Tuning dann speichern?
4. Kann man in das Userprofil (was später ja noch als Tutorial kommt) eine Art Geldsystem einbauen? So da sman z.B. für Rennen Geld bekommt und dieses dann (wie in Punkt 3) für Tuning etc. ausgeben kann?
Deine Fragen kann man alle mit Ja beantworten. Es ist nur wie immer eine Frage des Aufwandes.
Da bin ich ja erst mal beruhigt das das geht.
Würdest du das in weiteren Tutorials dann etwas erklären wie man das macht?
Da ich der Javascript Sprache auch noch nicht so richtig mächtig bin und ich mich mit deinen Tutorials auch erst der Sprache annähere ist es für mich leider nicht möglich so etwas zur Zeit selbstständig zu erstellen 🙁
Hi Carsten,
Ich hätte eine frage zum tutorial der tachoanzeige .. .
Ich habe den script abgeschrieben
Die Tachoanzeige dreht sich bloß leider nicht…
Die digitale tachoanzeige geht, vorher war sie ja mit lauter kommazahlen jetzt ist sie ohne kommazahlen…..Aber das Tachometer bewegt sich nicht …kannst du mir helfen ?????
1.Bild : mein script
http://www.imagebanana.com/view/kvap09yn/Unbenannt.JPG
2. Bild : Mein auto + digitale tachoanzeige + Tachoanzeige
http://www.imagebanana.com/view/gnn086ez/Namenlos.jpg
(oben links siehst du die tacho anzeige und nebendarn das schwarze ist die digitale ,sie zeigt das tempo an,wärhenddessen die andere nur stehen bleibt
und dann ist da noch so ein Fehler …..currentSpeed…Ich habe auch schon versucht es klein zu schreiben ,der fehler ist weg aber es geht immer noch nicht (also das currentSpeed ganz unten,da wo auch das mit dem Display und pointer gemacht wird
Ziemlich viel auf einmal…Ich hoffe du schaffst es irgendein fehler zu entdecken 😆 😆 😆
@StolleJay: Was ich von Deinen Punkten in meiner Reihe noch umsetze kann ich noch nicht sagen. 😉
@Jonah: schreib mal bei deiner Variablen-Deklaration currenSpeed und nicht currenspeed (achte auf das S).
oh mann….
😳 😳 😳 Ich muss mich jetzt TOTAL schämen 😳 😳 😳 😳
Ich hab : currentSpeed geschrieben aber es heißt ja currenSpeed ..also das t ..das hab ich bei JEDEM currenSpeed gemacht ….
Also tschuldignung 😆 😆 😳 😳 🙄 🙄
Und wie ist das mit demReifendrehen ????? Bei mir bleibt das rad nicht auf einer stelle sondern dreht sich im kreis ….Also wie wenn man eine schnur nimmt am ende einen reifendranbindet un dann rumschleudert …Aber der script stimmt aufjedenfall…
Das klingt für mich so, als wenn die EmptyObjects, in die Du deine Reifenobjekte gezogen hast, nicht richtig positoniert sind.
Bitte mach das nochmal genauso wie ich das in dem Video erklärt hab: „Erst auf 0,0,0, danach ein OberEmptyObject, dann für jedes Rad ein Objekt erzeugen und dieses auf Postion ….“ usw. Wenn Du da nämlich von abweißt, passiert genau das, was Du schilderst.
Super erklärt.
@Jonah für einen beenden button brauchste kein tut, das geht ganz einfach:
Wo beim Startbutton Application.LoadLevel (1) steht, schreibste Application.Quit () hin und schon wird das spiel beendet, sobalt du aus den Button klickst 😉
@StolleJay
Haste große pläne?:roll: das ist ganz schön viel auf einmal um es in ein tut zu bekommen, der carsten macht seine sache hier echt hervoragend, wenn er es für richtig hält wird er es glaube auch nocht machen, oder nicht?! 😉
Gruß
Pascal