private static void DrawAtlasesList(BlockSet blockSet) { Atlas[] list = blockSet.GetAtlases(); GUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true)); { selectedAtlas = EditorGUIUtils.DrawList(selectedAtlas, list); EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Add")) { ArrayUtility.Add <Atlas>(ref list, new Atlas()); selectedAtlas = list.Length - 1; GUI.changed = true; } if (GUILayout.Button("Remove") && selectedAtlas != -1) { Undo.RegisterUndo(blockSet, "Remove atlas"); ArrayUtility.RemoveAt <Atlas>(ref list, selectedAtlas); selectedAtlas = Mathf.Clamp(selectedAtlas, 0, list.Length - 1); GUI.changed = true; } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); blockSet.SetAtlases(list); }