private void displayItems() { for (int i = 0; i < database.Count; i++) { QualityBase row = database.Get(i); EditorGUILayout.BeginHorizontal(); GUILayout.Button(row.Icon.texture, GUILayout.Width(24), GUILayout.Height(24)); EditorGUILayout.ColorField(row.Forecolor, GUILayout.Height(24), GUILayout.Width(50)); EditorGUILayout.TextField(row.Name, GUILayout.Height(24)); if (GUILayout.Button("Edit", GUILayout.Width(50), GUILayout.Height(24))) { selectedIndex = i; selectedQuality = database.Get(i); addQuality = false; editQuality = true; } if (GUILayout.Button("Delete", GUILayout.Width(50), GUILayout.Height(24))) { if (EditorUtility.DisplayDialog("Confirm Delete", "Are you sure you wish to delete this Quality item? This action cannot be undone!", "Yes, I understand")) { selectedIndex = i; database.Remove(row); addQuality = false; editQuality = false; } } Repaint(); EditorGUILayout.EndHorizontal(); } }
void addNewQuality() { // name if (addQuality || editQuality) { EditorGUILayout.BeginHorizontal(); // Sprite if (selectedQuality.Icon) { selectedQualityTexture = selectedQuality.Icon.texture; } else { selectedQualityTexture = null; } if (GUILayout.Button(selectedQualityTexture, GUILayout.Width(32), GUILayout.Height(32))) { int controllerID = EditorGUIUtility.GetControlID(FocusType.Passive); EditorGUIUtility.ShowObjectPicker <Sprite> (null, false, null, controllerID); } selectedQuality.Name = EditorGUILayout.TextField("Name:", selectedQuality.Name); selectedQuality.Forecolor = EditorGUILayout.ColorField("Item Label Color", selectedQuality.Forecolor); EditorGUILayout.EndHorizontal(); string cmdName = Event.current.commandName; if (cmdName == "ObjectSelectorUpdated") { Sprite selectedObject = (Sprite)EditorGUIUtility.GetObjectPickerObject(); selectedQuality.Icon = selectedObject; Repaint(); } if (GUILayout.Button("Save")) { if (selectedQuality.Name == null) { Debug.LogError("You must provide a name for your new Quality."); } else if (selectedQuality.Icon == null) { Debug.LogError("You must provide a Icon Sprite for your new Quality."); } else if (addQuality) { database.Add(selectedQuality); selectedQuality = new QualityBase(); addQuality = false; } else { database.Replace(selectedIndex, selectedQuality); editQuality = false; } } } if (GUILayout.Button("Add")) { selectedQuality = new QualityBase(); addQuality = true; } EditorGUILayout.Separator(); }