public void ReloadCollections()
        {
#if UNITY_EDITOR
            if (Application.isPlaying)
            {
                return;
            }

            string[] collectionsGUIDs = UnityEditor.AssetDatabase.FindAssets($"t:{nameof(ScriptableObjectCollection)}");

            collections.Clear();
            collectionGUIDs.Clear();

            for (int i = 0; i < collectionsGUIDs.Length; i++)
            {
                string collectionGUID = collectionsGUIDs[i];

                ScriptableObjectCollection collection =
                    UnityEditor.AssetDatabase.LoadAssetAtPath <ScriptableObjectCollection>(
                        UnityEditor.AssetDatabase.GUIDToAssetPath(collectionGUID));

                if (collection == null)
                {
                    continue;
                }

                collection.RefreshCollection();
                collections.Add(collection);
                collectionGUIDs.Add(collection.GUID);
            }

            ObjectUtility.SetDirty(this);
#endif
        }
Exemple #2
0
        public void ReloadCollections()
        {
#if UNITY_EDITOR
            if (Application.isPlaying)
            {
                return;
            }

            collections.Clear();

            bool        changed = false;
            List <Type> types   = TypeUtility.GetAllSubclasses(typeof(ScriptableObjectCollection));
            for (int i = 0; i < types.Count; i++)
            {
                Type     type      = types[i];
                string[] typeGUIDs = AssetDatabase.FindAssets($"t:{type.Name}");

                for (int j = 0; j < typeGUIDs.Length; j++)
                {
                    string typeGUID = typeGUIDs[j];
                    ScriptableObjectCollection collection =
                        AssetDatabase.LoadAssetAtPath <ScriptableObjectCollection>(AssetDatabase.GUIDToAssetPath(typeGUID));

                    if (collection == null)
                    {
                        continue;
                    }

                    collection.RefreshCollection();
                    collections.Add(collection);
                    changed = true;
                }
            }

            if (changed)
            {
                ObjectUtility.SetDirty(this);
            }

            ValidateGUIDs();
#endif
        }