- Home /
A Script Problem of GUI....
I want to make my main menu like this when the animation is over/or when the specific time is reached, the OnGUI() function is enabled and background got visible...But no errors come up and also the background is displayed before the specific time... The script is here:
var carBackdrop : Texture2D;//background
private var threeSeconds : float = 3.0;
function Update()
{
var firstMenu : mainMenu = transform.GetComponent(mainMenu);
if(Time.time < threeSeconds)
{
OnGUI();
Destroy(gameObject);
}
}
function OnGUI() {
var backgroundStyle : GUIStyle = new GUIStyle();
backgroundStyle.normal.background = carBackdrop;
GUI.Label ( Rect( (Screen.width - (Screen.height * 2)) * 0.75, 0, Screen.height * 2,
Screen.height), "", backgroundStyle);
}
I am sure someone can help....And thanx in advance...
It seems like a timer issue. $$anonymous$$aybe this will help you: http://answers.unity3d.com/questions/10213/timer-function-which-calculates-how-long-an-enable.html
Answer by whydoidoit · Sep 28, 2012 at 04:01 PM
You don't call OnGUI from Update it is called all the time by Unity.
Your code at the moment is using Time.time - which is time since the game started so within the first 3 seconds your object is destroyed - I can't believe you want to do that.
You need to put a time check inside OnGUI and just return if the time is outside the range you want. You might use your Update to just add Time.deltaTime onto a variable to count the amount of elapsed time:
var timeElapsed = 0.0;
function Update();
{
timeElapsed += Time.deltaTime;
}
function OnGUI()
{
if(timeElapsed < 3)
return;
//Put your display code here
}
I am not very much experienced in unity...and thank u for helping me out...
Your answer

Follow this Question
Related Questions
How to draw GUI Text from code 1 Answer
Convert Timer to HH:MM:SS 1 Answer
Unity freezes when changing GUI.Color.a 1 Answer
Re Enable C# script on camera 1 Answer
Create GUI button in update function? 3 Answers