static void SetupAssetdatabaseUsage()
        {
            s_EditorBuildSettings = AssetbundleBuildSettings.EditorInstance;
            if (s_EditorBuildSettings == null || !s_EditorBuildSettings.IsValid())
            {
                throw new System.Exception("AssetbundleBuildSetting is not valid");
            }

            if (s_EditorBuildSettings.CleanCacheInEditor)
            {
                Caching.ClearCache();
            }

            UseAssetDatabase = !s_EditorBuildSettings.EmulateInEditor;

            if (UseAssetDatabase)
            {
                var assetPath = new List <string>();
                var loadPath  = new List <string>();
                foreach (var setting in s_EditorBuildSettings.BundleSettings)
                {
                    assetPath.Clear();
                    loadPath.Clear();

                    var folderPath = UnityEditor.AssetDatabase.GUIDToAssetPath(setting.Folder.guid);
                    var dir        = new DirectoryInfo(Path.Combine(Application.dataPath, folderPath.Remove(0, 7)));
                    AssetbundleBuildSettings.GetFilesInDirectory(string.Empty, assetPath, loadPath, dir, setting.IncludeSubfolder);
                    var assetList = new Dictionary <string, List <string> >();
                    for (int i = 0; i < assetPath.Count; i++)
                    {
                        if (assetList.TryGetValue(loadPath[i], out var list))
                        {
                            list.Add(assetPath[i]);
                            continue;
                        }

                        assetList.Add(loadPath[i], new List <string>()
                        {
                            assetPath[i]
                        });
                    }

                    s_AssetListForEditor.Add(setting.BundleName, assetList);
                }
            }
        }
 public static void SetupApiTestSettings(AssetbundleBuildSettings settings = null)
 {
     if (Application.isPlaying)
     {
         throw new System.Exception("This funcion cannot be called while playing!");
     }
     if (settings == null)
     {
         settings = AssetbundleBuildSettings.EditorInstance;
     }
     if (settings == null || !settings.IsValid())
     {
         throw new System.Exception("AssetbundleBuildSetting is not valid");
     }
     UseAssetDatabase = true;
     //create editor asset map only for testing
     s_EditorAssetMap = new EditorAssetMap(settings);
 }
        static void SetupAssetdatabaseUsage()
        {
            s_EditorBuildSettings = AssetbundleBuildSettings.EditorInstance;
            if (s_EditorBuildSettings == null || !s_EditorBuildSettings.IsValid())
            {
                throw new System.Exception("AssetbundleBuildSetting is not valid");
            }

            if (s_EditorBuildSettings.CleanCacheInEditor)
            {
                Caching.ClearCache();
            }

            UseAssetDatabase = !s_EditorBuildSettings.EmulateInEditor;

            //create editor asset map
            if (UseAssetDatabase)
            {
                s_EditorAssetMap = new EditorAssetMap(s_EditorBuildSettings);
                //set initialied so it does not need explit call initialzed when using aassetdatabase
                Initialized = true;
            }
        }