public static void RefreshLoopDataPresetsDatabase()
        {
            EditorUtility.DisplayProgressBar("Refreshing Loop Animations Database", "", 0f);
            LoopDataPresetsDatabase = new Dictionary <string, List <LoopData> >();
            List <string> directories = new List <string>();

            directories = RemoveEmptyPresetFolders(RELATIVE_PATH_LOOP_DATA, GetLoopPresetsDirectories);
            for (int directoryIndex = 0; directoryIndex < directories.Count; directoryIndex++)
            {
                EditorUtility.DisplayProgressBar("Refreshing Loop Animations Database", directories[directoryIndex], ((directoryIndex + 1) / (directories.Count + 2)));
                string[] fileNames = GetLoopPresetsNamesForCategory(directories[directoryIndex]);
                if (fileNames.Length == 0)
                {
                    continue;
                }                                        //empty folder
                LoopDataPresetsDatabase.Add(directories[directoryIndex], new List <LoopData>());
                for (int fileIndex = 0; fileIndex < fileNames.Length; fileIndex++)
                {
                    LoopData asset = GetResource <LoopData>(RESOURCES_PATH_LOOP_DATA + directories[directoryIndex] + "/", fileNames[fileIndex]);
                    if (asset == null)
                    {
                        continue;
                    }
                    EditorUtility.DisplayProgressBar("Refreshing Loop Animations Database", directories[directoryIndex] + " / " + asset.presetName, ((directoryIndex + 1) / (directories.Count + 2)));
                    LoopDataPresetsDatabase[directories[directoryIndex]].Add(asset);
                }
            }
            EditorUtility.DisplayProgressBar("Refreshing Loop Animations Database", "Creating Categories List...", 0.9f);
            RefreshLoopPresetCategories();
            EditorUtility.DisplayProgressBar("Refreshing Loop Animations Database", "Validating...", 1f);
            ValidateLoopPresets();
            EditorUtility.ClearProgressBar();
        }
Example #2
0
 private static LoopData CreateLoopDataAsset(string relativePath, string presetCategory, string presetName, Loop loop)
 {
     LoopData asset = ScriptableObject.CreateInstance<LoopData>();
     asset.presetName = presetName;
     asset.presetCategory = presetCategory;
     asset.data = loop;
     if (!QuickEngine.IO.File.Exists(relativePath + presetCategory + "/"))
     {
         QuickEngine.IO.File.CreateDirectory(relativePath + presetCategory + "/");
     }
     AssetDatabase.CreateAsset(asset, relativePath + presetCategory + "/" + presetName + ".asset");
     EditorUtility.SetDirty(asset);
     AssetDatabase.SaveAssets();
     AssetDatabase.Refresh();
     return asset;
 }