void SpriteList() { GUILayout.Label("Sprites", "HeaderLabel"); bool hasMissingTextures = false; EditorGUI.BeginChangeCheck(); MadGUI.Indent(() => { for (int i = 0; i < atlas.ListItems().Count; ++i) { MadAtlas.Item item = atlas.ListItems()[i]; EditorGUILayout.BeginHorizontal(); var texture = MadAtlasUtil.GetItemOrigin(item); bool valid = MadGUI.Validate(() => texture != null, () => { item.name = EditorGUILayout.TextField(item.name); }); GUI.enabled = valid; GUI.color = Color.yellow; if (GUILayout.Button("Ping", GUILayout.Width(40))) { EditorGUIUtility.PingObject(texture); } GUI.enabled = true; GUI.color = Color.red; if (GUILayout.Button("X", GUILayout.Width(20))) { MadAtlasBuilder.RemoveFromAtlas(atlas, item); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); if (!valid) { hasMissingTextures = true; } } if (hasMissingTextures) { MadGUI.Error("There are sprites with missing origin texture. This will for them to dissapear on edit."); } }); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(atlas); } }