public IAssetAsynRequest LoadAsyn() { if (!CheckLoadStatus()) { return(null); } IAssetAsynRequest asynRequest = new AssetAsynRequest(); if (asset) { asynRequest.SetAsset(asset); } else { if (bundleLoader == null) { string bundleName = ResourceSetting.GetBundleName(resID); bundleLoader = resourceModule.GetBundleLoader(bundleName); } bundleLoader.LoadAsyn((bundle) => { StartCoroutine(LoadAsset((asset) => { asynRequest.SetAsset(asset); })); // AppendCoroutine(LoadAsset(assetName,bundle,(asset)=> // { // asynRequest.SetAsset(asset); // })); }); } return(asynRequest); }
private IEnumerator LoadAssetBundle(Action <AssetBundle> onCacheFinished) { if (dependencies == null || dependencies.Length == 0) { dependencies = resourceModule.Manifest.GetAllDependencies(bundleName); } if (dependencies != null) { int dependenciesLoadedCount = 0; int dependenciesCount = dependencies.Length; for (int i = 0; i < dependenciesCount; i++) { AssetBundleLoader loader = resourceModule.GetBundleLoader(dependencies[i]); loader.LoadAsyn((bundle) => { dependenciesLoadedCount++; }); } while (dependenciesLoadedCount < dependenciesCount) { yield return(null); } } AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(path); yield return(request); bundle = request.assetBundle; if (!bundle) { Debug.LogError("Bundle加载失败!"); } LoadedCallback(onCacheFinished); }