- Home /
Errors when using GUILayout in ModalWindow
I am trying to show a modal window and fill it using GUILayout. I have done this in another script without any problems, and can't see what I'm doing differently here.
When I use "Begin/End Horizontal", I get this error: "ArgumentException: Getting control 1's position in a group with only 1 controls when doing Repaint". I have googled the error and other answers don't seem to be related.
void OnGUI() {
if (UserLoggingIn) {
GUI.ModalWindow(1, loginWindowRect, LoginWindow, "Login");
}
}
void LoginWindow(int windowID) {
GUILayout.BeginHorizontal();
if (GUILayout.Button("Cancel")) {
Debug.Log("Cancel");
}
if (GUILayout.Button("Login")) {
Debug.Log("Login");
}
GUILayout.EndHorizontal();
}
If I remove the Horizontal lines, the error clears, but the buttons do not respond. I can highlight the buttons, but clicking them does nothing.
void LoginWindow(int windowID) {
if (GUILayout.Button("Cancel")) {
Debug.Log("Cancel");
}
if (GUILayout.Button("Login")) {
Debug.Log("Login");
}
}
I'm wondering if another script could be interfering, but can't see how. Any ideas? The property UserLoggingIn
is not being changed after initialisation.
Answer by hamstar · Oct 22, 2013 at 03:42 PM
I only just asked the question, but I found what was causing it so might as well leave an answer for others.
The issue was that I was giving the ModalWindow an id that was already being used by another Window. Changing the id solved this. The error message was not particularly helpful!
GUI.ModalWindow(2, loginWindowRect, LoginWindow, "Login");
Your answer
Follow this Question
Related Questions
How to put a GUILayout button BESIDE another one instead of below? 1 Answer
GUI Layout. Can I end and begin a horizontal group automatically? 1 Answer
GUILayout Window Help 1 Answer
Small GUILayout button 1 Answer
Unity GUILayout Button 3 Answers