- Home /
why cant my GUI.Label Show when i put it
here's the code in the else when I put GUI.Label it wont show up why ? please help me thankyou
public class wawa : MonoBehaviour { private bool Poop; public string Info; private List<string[]> questions = new List<string[]>(); private List<int> answerOrder = new List<int>(new int[] {1,2,3,4}); void DrawInfo() { Rect rect = new Rect(500, 100, 400, 200); Rect close = new Rect(600, 500, 200, 100); if(GUI.Button(close, "ATTACK")) { Poop = !Poop; } if (Poop) { GUI.Box(rect, Info); GUI.Label(new Rect(520, 110, 400, 30), questions[0][0]); if (GUI.Button(new Rect(520, 200, 100, 30), questions[0][answerOrder[0]])) { HandleAnswer(answerOrder[0]); } if (GUI.Button(new Rect(520, 250, 100, 30), questions[0][answerOrder[1]])) { HandleAnswer(answerOrder[1]); } if (GUI.Button(new Rect(780, 200, 100, 30), questions[0][answerOrder[2]])) { HandleAnswer(answerOrder[2]); } if (GUI.Button(new Rect(780, 250, 100, 30), questions[0][answerOrder[3]])) { HandleAnswer(answerOrder[3]); } } } private void HandleAnswer(int answer) { if (answer == 1) { NextQuestion(); } else { //here's where my GUI.label wont show when i put it here } } void OnGUI() { if(questions.Count > 0) { DrawInfo(); } }
Answer by Maui-M · Jan 30, 2014 at 05:08 PM
Questions is never given any values. And you are only displaying the GUIs if there are questions.
private List<string[]> questions = new List<string[]>();
if(questions.Count > 0) {
DrawInfo();
}
Edit: Ok, that makes more sense. I think it might be because Unity's GUI requires you to draw the elements each frame. That else statement is only being called when you click the button. So instead of trying to show the GUI Label in that else try setting a Boolean flag there, then in your DrawInfo() function only show that label if the flag is true. Some more code below for you.
private bool ShowIncorrect = false;
void DrawInfo() {
if (Poop) {
if(ShowIncorrect)
GUI.Label(new Rect(520, 150, 400, 30), "Incorrect Answer");
}
}
private void HandleAnswer(int answer) {
ShowIncorrect = false;
if (answer == 1) {
NextQuestion();
}
else {
//here's where my GUI.label wont show when i put it here
ShowIncorrect = true;
}
}
Your answer
Follow this Question
Related Questions
How do you get a caret to show in GUILayout.TextField ??? 0 Answers
How to hide/unhide a GUI image when character enters trigger. 1 Answer
show gui when look certain object 2 Answers
on collision show gui 2 Answers
GUI Text Bar 1 Answer