[unity2019]ArgumentException: Getting control 1’s position in a group with only 1 controls when doing repaint

EditorWindow OnGUI() で起こる(ことがある)エラー。

ArgumentException: Getting control 1’s position in a group with only 1 controls when doing repaint
Aborting

条件分岐などで、最初に GUI が表示されず、後から表示されるとコントロールの位置計算に問題が出てしまう、というエラーのようです。

以下のコードの8行目でエラーになります。

static bool flag = false;

void OnGUI()
{
    GUILayout.BeginHorizontal();
    GUILayout.Label("LABEL", EditorStyles.boldLabel);

    if (flag == false || GUILayout.Button("update", GUILayout.MaxWidth(150)))
    {
        flag = true;
    }
    GUILayout.EndHorizontal();
}

対処法ですが、必ずコントロールを表示させるようにすれば問題ありません。
具体的には以下のように変更します。

if (GUILayout.Button("update", GUILayout.MaxWidth(150)) || flag == false)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA