public async void InternalLoadExternalAssetAsync(string path, string file, CallBackDelegate <object, object> callBack, DelegateLoadExternalMehod method, GetPathFuncDelegate getExternalPathFunc, GetDependBundlesFuncDelegate getExternalDependcesFunc) { string assetBundleName = path + file; string assetBundlePath = getExternalPathFunc(assetBundleName); string[] dependencies = getExternalDependcesFunc(assetBundleName); if (SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + assetBundleName)) { // Debug.Log(assetBundleName); SyncResourceManager.LoadObjectExternal(path, file, callBack); return; } if (taskList.Contains("external/" + assetBundleName)) { await new WaitUntil(() => !this.taskList.Contains("external/" + assetBundleName)); } taskList.Add("external/" + assetBundleName); if (!this.bundles.ContainsKey("external/" + assetBundleName) && !this.resourceCache.ContainsKey("external/" + assetBundleName)) { foreach (string dependency in dependencies) { if (string.IsNullOrEmpty(dependency)) { continue; } if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + dependency)) { if (!TestTaskList.Contains("external/" + dependency) && !this.bundles.ContainsKey("external/" + dependency)) { await this.MyLoadOneBundleAsync("external/" + dependency, path); } else if (TestTaskList.Contains("external/" + dependency)) { await new WaitUntil(() => this.bundles.ContainsKey("external/" + dependency)); } } } } foreach (string dependency in dependencies) { if (string.IsNullOrEmpty(dependency)) { continue; } if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + dependency)) { await new WaitUntil(() => this.bundles.ContainsKey("external/" + dependency)); } } method(path, file, callBack, getExternalDependcesFunc); taskList.Remove("external/" + assetBundleName); }
public async void InternalLoadAssetAsync(string path, string file, CallBackDelegate <object, object> callBack, DelegateLoadBundleMehod method, GetPathFuncDelegate getExternalPathFunc, GetDependBundlesFuncDelegate getExternalDependcesFunc) { string assetBundleName = path + file; string assetBundlePath = getExternalPathFunc(assetBundleName); string[] dependencies = getExternalDependcesFunc(assetBundleName); if (taskList.Contains(assetBundleName)) { await new WaitUntil(() => !this.taskList.Contains(assetBundleName)); } taskList.Add(assetBundleName); if (!this.bundles.ContainsKey(assetBundleName)) { foreach (string dependency in dependencies) { if (string.IsNullOrEmpty(dependency)) { continue; } if (!this.bundles.ContainsKey(dependency) && !TestTaskList.Contains(dependency)) { await this.MyLoadOneBundleAsync(dependency, path); } else if (TestTaskList.Contains(dependency)) { await new WaitUntil(() => this.bundles.ContainsKey(assetBundleName) == true); } } } foreach (string dependency in dependencies) { await new WaitUntil(() => this.bundles.ContainsKey(dependency) == true); } method(path, file, callBack); taskList.Remove(assetBundleName); }
public void LoadTextTureAsync(string path, string file, CallBackDelegate <object, object> callBack, GetPathFuncDelegate getPathFunc, GetDependBundlesFuncDelegate getDependcesFunc) { this.InternalLoadAssetAsync(path, file, callBack, new DelegateLoadBundleMehod(this.SetTexture), getPathFunc, getDependcesFunc); }