Замученный уже этими GUILayout.Begin\End попробовал писать в таком стиле:
private static void Area(Rect rect, System.Action action) {
GUILayout.BeginArea( rect );
action();
GUILayout.EndArea();
}
private static void HorizontalCenter(System.Action action) {
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.BeginVertical();
action();
GUILayout.EndVertical();
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
}
Rect rect = new Rect(0, 0, Screen.width, Screen.height);
Area( rect, () => HorizontalCenter( () => {
// draw my gui
} ) );
Давно хотел разобраться с этими лямбдами.
Никто так не пробовал?
Хотя получилось наверно еще страшнее.