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();
    }
}

`

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;
    }
}