Tortelini66 Geschrieben 10. März 2012 Melden Share Geschrieben 10. März 2012 So, ich hab mal wieder ein problem, und zwar wollte ich diesmal einen String anzeigen lassen, und dann nach einer gewissen Zeit ausblenden lassen. Und zwar sollte der Text solange da stehen, solange ein dazugehöriger Ton abgespielt wird. Dummerweise kann man aber in OnGUI nicht warten (wäre ja auch sehr nachteilhaft). Jetzt habe ich einfach zu dem Zeitpunkt eine Funktion aufgerufen, die eine Variable auf true setzt, und dann wartet, und dann wieder auf false setzt. Die variable wird zwar auf true gesetzt, allerdings nicht wieder auf false. ich hab das Gefühl, dass er ewig wartet?! function untertitel() { print("zeige Untertitel"); showuntertitel = true; yield WaitForSeconds(5); print("beende untertitel"); showuntertitel = false; } provisorisch wollte ich ihn erst einmal 5 Sekunden warten lassen, aber auch das funktioniert nicht. Auch mein Label wird mir nicht angezeigt if(showuntertitel == true) { GUI.Label(Rect(0,Screen.height-(Screen.height/3)+20,Screen.width,Screen.height/3),Quests[z].unterantworten[b].beschreibung); } Das verwirrt mich ziemlich. Vielleicht kann mir ja jemand helfen MfG Tobias Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
bartman4411 Geschrieben 10. März 2012 Melden Share Geschrieben 10. März 2012 Hi, ich bin zwar auch noch kein Profi aber ich würde es so lösen. var untertitel: float = 5 var showuntertitel: boolean; function Update(){ if (showuntertitel = true) { untertitel = untertitel - Time.deltaTime; GUI.Label(Rect(0,Screen.height-(Screen.height/3)+20,Screen.width,Screen.height/3),Quests[z].unterantworten[b].beschreibung); } if (untertitel <= 0) { showuntertitel == false; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Tortelini66 Geschrieben 10. März 2012 Autor Melden Share Geschrieben 10. März 2012 das funktioniert ja vorne und hinten nicht. Man weist eine variable einen wert mit einem einfachn "=" und nicht mit einem doppelten zu. In der if abfrage benutzt man "==" und Labels kann man auch nur in der onGUI Funktion benutzen, aber in keiner anderen. Auch nicht Update. aber die Idee mit dem float ist gar nicht schlecht Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 10. März 2012 Melden Share Geschrieben 10. März 2012 Eigentlich sieht der erste Ansatz oben ganz gut aus. Hast du den ganzen Code parat? Es könnte daran liegen, dass untertitel() zu oft aufgerufen wird oder so. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hendrik Geschrieben 10. März 2012 Melden Share Geschrieben 10. März 2012 Es wäre ja auch so ein großes Problem gewesen den Code zu berichtigen var untertitel: float = 5 var showuntertitel: boolean; function OnGUI() { if(showuntertitel) GUI.Label(Rect(0,Screen.height-(Screen.height/3)+20,Screen.width,Screen.height/3),Quests[z].unterantworten[b].beschreibung); } function Update() { if (showuntertitel) { untertitel = untertitel - Time.deltaTime; } if (untertitel <= 0) { showuntertitel = false; } } function showSubtitle() { untertitel = 5f; showuntertitel = true; } 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.