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();
}
}
★☆☆☆☆
반응형
댓글