Unity GUIText für bestimmte Zeit anzeigen?
hallo,
ich möchte gerne in einem projekt ein GUIText an einer betimmten Stelle (x,y koordinaten) für einen bestimmten zeitraum anzeigen lassen und danach wieder verbergen. Szenario: Komet wird zerstört, an dieser Stelle tauch für ein paar sekunden "+10" auf und verschwindet danach wieder.
hoffe ihr könnt mir helfen (vorzugsweise in C#)
2 Antworten
Reagiere in einem Event Handler, wenn das Objekt (Komet) zerstört wird (OnDestroy), durch Erstellen oder Einblenden einer Instanz deines GUITexts.
Dem GUIText selbst kann nun noch ein Skript zugeordnet werden, in dem die 10 Sekunden gewartet wird. Danach blendest du das Objekt aus oder zerstörst es.
Wenn du dich für das Einblenden entscheidest, würde ich an deiner Stelle mit/nach dem Einblenden wieder ein Event auslösen, auf das du mit dem GUIText-Objekt reagierst (und den Timer zum Zählen startest).
Das Warten lässt sich ebenso einfach realisieren. Zu Beginn setzt du eine Variable mit der maximalen Anzahl an Sekunden, die zu warten sind. In der Update-Funktion kannst du nun die abgelaufene Zeit (Time.deltaTime) von der Variable substrahieren. Danach folgt eine Prüfung, ob die Variable bereits den Wert 0 erreicht hat oder noch nicht. Wenn ja, startest du das Ausblenden.
Dafür eignen sich gut Coroutines:
- https://unity3d.com/de/learn/tutorials/topics/scripting/coroutines
- https://docs.unity3d.com/Manual/Coroutines.html
- https://docs.unity3d.com/ScriptReference/Coroutine.html
Besonders, wenn du noch Effekte wie Verblassen des Textes hinzufügen möchtest.