UnSpeed Geschrieben 9. September 2010 Melden Share Geschrieben 9. September 2010 Hi, ich hab mal wieder eine Frage: Und zwar geht es diesmal darum, dass wenn ich auf den GUI.Button 'Optionen' drücke, dann die Optionen auftauchen sollen. Alles in Ordnung, kein Problem, aber jetzt: Wenn man dann auf einen anderen Button von GUI klickt, sollen die Optionen verschwinden. Daran scheitere ich gerade.^^ Ich hoffe ihr könnt mir (mal wieder) helfen! Danke, Unspeed (Juli) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. September 2010 Melden Share Geschrieben 9. September 2010 Du musst Dir irgendwo eine Variable für "Optionen anzeigen" speichern: var showOptions : boolean = false; function OnGUI() { if(GUI.Button(Rect(10,10,100,24), "anzeigen")) showOptions = true; if(showOptions) { GUI.Button(Rect(120,10,100,24), "optionsknopf") if(GUI.Button(Rect(120,40,100,24), "verstecken")) showOptions = false; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
UnSpeed Geschrieben 9. September 2010 Autor Melden Share Geschrieben 9. September 2010 Naja, aber das lässt die GUIs ja nicht verschwinden, oder? Ich dachte da eher an sowas wie eine while ()-Schleife. Also while(options == true) zeige die Optionen. Kann man das so realisieren? Juli Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. September 2010 Melden Share Geschrieben 9. September 2010 Naja, aber das lässt die GUIs ja nicht verschwinden, oder? Doch. Kann man das so realisieren? Nein. Dann hättest Du eine Endlosschleife und dein Spiel stürzt ab. Probiere doch einfach mal meinen Code als Skript aus. Du hast schon eine Schleife, die Du nicht siehst, weil Uniy sich darum kümmert, die sieht in etwa so aus, Pseudocode: while( irgendwas ) { mit jedem GameObject { Update(); OnGUI(); LateUpdate(); .... } } OnGUI() wird in jedem Frame ausgeführt. Wenn Du in OnGUI() reinschreibst "mal eine Box" dann wird jedem Frame eine Box gemalt. und wenn Du davor "nur wenn showOptions an ist" schreibst, dann schaut in jedem Frame erstmal nach, ob er das wirklich tun soll. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
UnSpeed Geschrieben 9. September 2010 Autor Melden Share Geschrieben 9. September 2010 Ah if(showOptions) { } heisst also, schaue ob showOptions == true ? Okay, dann macht das auch Sinn:D Danke, für deine Hilfe, Juli Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 9. September 2010 Melden Share Geschrieben 9. September 2010 Ja, "== true" kannst Du immer weglassen und "== false" durch ein anführendes "!" ersetzen. if(!showOptions) Jetzt mal was echt interessantes: In einer if-Abfrage muss immer ein boolean-Wert stehen (logisch - mit "Wenn 7" oder "Wenn Gurke" kann auch keiner was anfangen). Sicherlich hat jeder schonmal das gesehen: if(x == 9) Jetzt denke man mal nach: "x == 9" muss ja ein boolean sein. == ist daher ein Operator, der zwei Variablen gleichen oder vergleichbaren Typs vergleicht und true oder false zurück gibt. Man kann tatsächlich sowas schreiben: if(5 == 5 == true) Kannst mal ausprobieren, funktioniert wirklich ^^ "== true" kannst du somit immer weg lassen, und außerdem kannst Du das in Zuweisungen verwenden: var fiveIsFive : boolean = 5 == 5; Auch das funktioniert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
UnSpeed Geschrieben 10. September 2010 Autor Melden Share Geschrieben 10. September 2010 Das ist wirklich eine sehr nützliche Info gewesen! Danke! Nur noch mal, dass ich auch wirklich alles verstanden habe: var fiveIsFive : boolean = 5 == 5; Bedeutet also, dass fiveIsFive true ist, wenn 5=5? Danke! Juli Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 10. September 2010 Melden Share Geschrieben 10. September 2010 So ist es. 5 == 5 gibt true zurück. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
UnSpeed Geschrieben 10. September 2010 Autor Melden Share Geschrieben 10. September 2010 Okay, danke! Wieder was gelernt Juli Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.