private void DrawEntry(EiEntry entry, int index) { MoveRight(); entry.name = entry.targetObject ? entry.targetObject.name : "Empty Entry"; var pre = entry.targetObject; var preEntryObj = entry; entry.targetObject = EditorGUILayout.ObjectField(string.Format("({0}) {1}", index, entry.name), entry.targetObject, typeof(UnityEngine.Object), false); if (pre != null) { if (entry.targetObject == null) { preEntryObj.DestroyFile(); } } MoveLeft(); }
public static T Instantiate <T> (EiEntry entry) where T : UnityEngine.Object { return(Instantiate(entry) as T); }
public static UnityEngine.Object Instantiate(EiEntry entry) { return(MonoBehaviour.Instantiate(entry.targetObject)); }
private void DrawCategory(EiCategory category, int index) { MoveRight(); EditorGUILayout.BeginHorizontal(); category.folded = EditorGUILayout.Foldout(category.folded, string.Format("({0}) {1}", index, category.name)); category.name = EditorGUILayout.TextField(category.name); EditorGUILayout.EndHorizontal(); if (category.folded) { var entries = category.entries; if (entries == null) { entries = new List <EiEntry> (); } if (entries.Count == 0) { EditorGUILayout.LabelField("No Entries"); } for (int i = 0; i < entries.Count; i++) { var entry = entries [i]; if (entry == null) { entries.RemoveAt(i); i--; continue; } entry.category = index; entry.entry = i; DrawEntry(entries [i], i); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add Entry", GUILayout.Width(100f))) { var entry = EiEntry.CreateAsset("Eitrum/EiDatabaseItems/Entries"); category.entries.Add(entry); } if (GUILayout.Button("Remove Category", GUILayout.Width(140f))) { DestroyCategory(category); } if (GUILayout.Button("Clear Empty", GUILayout.Width(100f))) { for (int i = 0; i < entries.Count; i++) { var entry = entries [i]; if (entry != null && entry.targetObject == null) { entry.DestroyFile(); } } } EditorGUILayout.EndHorizontal(); } MoveLeft(); if (category && category.folded) { GUILayout.Space(8f); } }