- Home /
How to display a GUI label for a certain amount of time
hey guys,
i was wondering, is it possible to make a gui label dissapear after a certain amount of time????
i know how to use the GUI.Label() function, and that is what i am using, but i need it to dissapear after a couple of seconds of it appearing....
thanks
-Grady
Answer by opsive · Jun 30, 2011 at 12:15 AM
I would use an invoke or a coroutine to toggle a switch between on and off.. something like
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
private bool showLabel = false;
public void Start() {
Invoke("ToggleLabel", 2);
}
public void ToggleLabel() {
showLabel = !showLabel;
}
public void OnGUI() {
if (showLabel) {
GUI.Label(new Rect(10, 10, 100, 20), "Hello World!");
}
}
}
http://unity3d.com/support/documentation/ScriptReference/index.Coroutines_26_Yield.html
change the dropdown to "javascript".
Answer by crazyKnight · Jun 30, 2011 at 06:16 AM
private var ShowlLabel : boolean = true;
function Start()
{
yield WaitForSeconds(your time limit);
ShowLabel = false;
function OnGUI()
{
if(ShowLabel)
{
GUI.Label(new Rect(10, 10, 100, 20), "Hello World!");
{
}
hey i have tried using your code, with some other code that i have and this is what i got:
private var ShowLabel = true; var objective : Transform; var style : GUIStyle;
function Start(){
yield WaitForSeconds(10); ShowLabel = false;
}
function OnGUI() {
if(ShowLabel) {
if (Vector3.Distance(transform.position, objective.position) < 3000){
GUI.Label(new Rect(650, 650, 300, 50), "BASE: There it is, fly closer so we can get a better look...", style);
}
}
}
the editor isn't sending any errors, so i don't know what could be wrong, but i add the objective object in in the editor, but when i get in range of it, nothing happens, do you know what is wrong?
it will work if i have the distance set to "< 4700" and any number higher then that, but it won't work otherwise.... do you know what is going wrong???
thanks
-Grady
Thanks a million, crazy$$anonymous$$night. You're a lifesaver. I've been searching for a good 2 or 3 hours to try to solve a similar problem I had with timed text. WaitForSeconds() is exactly what I was looking for.
Your answer
Follow this Question
Related Questions
Change GUI.Label text while it's active? 1 Answer
GUILabel doesn't show up 1 Answer
Score display not working 1 Answer
OnGUI called after LateUpdate screwing up debug text database 1 Answer
Center GUI.Label similar to GUIText? 2 Answers