Unity 3D-Tutorial: #27 – GUILayout
Dieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity 3D Tutorial Serie .
Im letzen Teil hatten wir begonnen ein Startmenü für unser Spiel zu erstellen, von dem aus der Spieler dann das Zeitrennen starten kann.
Hierbei haben wir die Steuerelemente mit der GUI-Klasse erzeugt. In diesem Teil möchte ich Euch die GUILayout-Klasse vorstellen, mit der Ihr Euch das Leben beim GUI-Design um einiges leichter machen könnt.
Tutorial-Inhalt
Im vorherigen Tutorial nutzten wird zum Erstellen des Start-Buttons die Klasse GUI. Da man aber bei jedem Element dieser Klasse immer die jeweiligen Koordinaten und die Größen mitgeben muss, kann dies bei komplexen Menüs doch schnell unübersichtlich werden.
Deshalb gibt es in Unity die GUILayout-Klasse. Das Zentrieren eines Menüs mit vielen GUI-Elementen ist damit zum Beispiel überhaupt kein Problem und zudem auch schnell gemacht. In dem folgenden Video-Tutorial demonstriere ich Euch genau dies.
Video-Tutorial
Da dieses Tutorial eine Länge von 10 Minuten hat, ist es mal wieder ein einteiliges Video-Tutorial geworden. Bei Fragen und Anmerkungen könnt Ihr wie immer die untere Kommentarfunktion nutzen. Ich freue mich auf Eure Meinungen!
Aber nun viel Spaß mit dem dieswöchigen Unity-Tutorial zum Thema GUILayout:
Ich hoffe, dass Euch das Tutorial gefallen hat!
Hier geht es weiter zum nächsten Unity 3D-Tutorial: #28 – Mit PlayerPrefs Daten speichern und laden
Ich habe ne frage wan stellste alle Scripte rein ? 😎
Die meisten Scripte sind in den dazugehörigen Artikeln enthalten. Das aktuelle Menü-Script hab ich jetzt nun noch nicht online gestellt. Aber so komplex ist es ja nicht, oder? 🙂
Hallo Carsten
Ich habe Deine Tutorials gespannt verfolgt und finde dass du sehr gute Arbeit leistest! Danke dafür! 🙂
Ich habe ein paar Fragen zur Zeitmessung…
Kannst Du noch etwas zu Checkpoints und Zeiterfassung (Bestzeiten etc.) zeigen? Eine Liste mit den Rennzeiten? (verschiedene Benutzer) Oder geht das zu weit? 🙂
Liebe Grüsse
@Peter: Vielen Dank für Dein Kommentar und für das Lob 🙂 Eigentlich wollte ich ja in der Tutorial-Reihe nur ein paar Grundlagen erklären, aber irgendwie ist es ein bisschen mehr geworden 😉
Mal sehen, ich bin noch am überlegen, wie weit ich mit der Serie gehen werde.
Gruß
Carsten
Ja schon es gibt aber einen fehler bei dir am 22 tut Erlärst du ja das mit den 5 4 3 2 1 Das mann sich da nicht vortbewegen kann da komm immer bei mir eine fehler meldung und die ist gewaltig aber bitte kannstzees rein stellen ich brauche es umbedingt Also bb :cool::cool::cool:
Hallo Carsten,
Hast das mit dem GUILayouts echt gut erklärt.
Weißt du zufällig wie der befehl unter Unity heißt um mouseover auf eine grafik innerhalb der GUI zu übertragen, ne eigene function (OnMouseDown) bekomm ich leider nicht in die if-schleife rein.
Danke für deine Hilfe
Gruß
Pascal
Hallo Carsten,
ich hab mal eine Frage. Geht es eine Variable(String) die in Java erzeugt wurde mit einem C# Script zu benutzen? Also um es besser zu erklären:
Ich hab mit Java ein Textfield erzeugt und der Text ist halt der String.
Mit einem C# Script kann ich Texte in .txt Dateien speichern. Und ich möchte jetzt diesen String nutzen um eine Datei zu Speichern mit dem Inhalt des Strings.
Aber leider kann ich nicht auf den String zugreifen!! Kannst du mir helfen?
Gruß Felix
Wenn Du in einem Javascript eine Variable mit STATIC deklarierst, kannst Du aus anderen Scripten auf diese zugreifen:
Script1:
static var text : String;
Script2:
test = Script1.text;
Und dieser Zugriff wie im Script2 müsste auch in C# funktionieren.
Pacel ich bin gerade für dich ein Script zu schreiben ich hoffe es gefelt dir ich gebe dir dan den linl okay dauert etaws
@Drak
okey?! solange du beim scripten nicht soviele tippfehler machst, dass ich es noch debuggen muss is alles super 🙂
Danke erstmal,
ich hab das Problem mit zwei GUITexten gelößt aber trotzdem danke aber ein Problem gibt es dennoch gibt es einen Befehl wie „charAt()“? weil ich will diesen String auf Sonderzeichen überprüfen lassen aber es geht damit nicht!! hier nich die adresse falls du es in dem tuturial brauchst : http://www.perlunity.de/perl/forum/thread_016390.shtml
Hi Felix,
in Unity kannst Du das mit Javascript wie folgt lösen:
var t : String;
var c : char;
c = MeinString[1];
t = c.ToString();
Das Beispiel holt sich das 2. Zeichen (also Item „1“) aus dem String „MeinString“.
Danke Carsten
und was kommt im nächsten Teil? 🙂
Wnn wirst du die ganzen scripte rein stellen bitte auch die kleinen teilen:razz: