示例#1
0
        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();
        }
示例#2
0
 public static T Instantiate <T> (EiEntry entry) where T : UnityEngine.Object
 {
     return(Instantiate(entry) as T);
 }
示例#3
0
 public static UnityEngine.Object Instantiate(EiEntry entry)
 {
     return(MonoBehaviour.Instantiate(entry.targetObject));
 }
示例#4
0
        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);
            }
        }