본문 바로가기
개발/Unity

문제해결)Unity)GUI Error: Invalid GUILayout state in view. Verify that all layout Begin/End calls matchUnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

by 테샤르 2024. 2. 2.

GUI Error: Invalid GUILayout state in  view. Verify that all layout Begin/End calls matchUnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

 

GUI 작업을 하다가 다음과 같은 에러가 발생해서 간략하게 포스팅한다.

에러 코드가 직관적이여서 확인해보면 Begin 과 End 는 쌍으로 작업이 되어야한다고 한다.

확인해보니 코드가 누락되어서 그렇다. 

 

반응형

 

 EditorGUILayout.BeginHorizontal();
 
 ...
 
 EditorGUILayout.EndHorizontal();

 

 

좀더 직관적으로 처리하기 위해서 구분을 하는것도 가독성이 좀더 좋아진다.

< 예시 1>

 float columnWidth = EditorGUIUtility.currentViewWidth;
 Rect rect = EditorGUILayout.BeginHorizontal(GUILayout.Width(columnWidth));
 {
     // Draw Toggle

     rect.y += 3f;
     rect.width = 32f;

     shown.boolValue = EditorGUI.Toggle(rect, shown.boolValue, Style.ToggleMixed);

     HierarchyGUI.Space(16f);

     DrawComponentLabel(icon.Content);

     // Add flexible space to push label to the left

     GUILayout.FlexibleSpace();
 }
 EditorGUILayout.EndHorizontal();

 

< 예시 2 >

using (new EditorGUILayout.HorizontalScope())
{
    if (GUILayout.Button("Cancel"))
    {
        Close();
    }
    if (GUILayout.Button("Apply"))
    {
        CustomProjectWindowScripatable.Instance.Favorite.UpdateFavoriteObject(asset, colorValue, descriptionValue);
        Close();
    }
}

 

 

 

★☆☆☆☆

 

반응형

댓글