protected IEnumerator LoadAssetBundleAsync(string assetBundleName, Action <float> progressNotifier, Action <string> onFailed, Action <LoadedAssetBundle> onSuccess) { // Load asset from assetBundle. AssetBundleLoadBundleOperation request = AssetBundleManager.LoadBundleAsync(assetBundleName); if (request == null) { yield break; } _progressNotifier = progressNotifier; AssetBundleManager.DownloadingErrors.ObserveAdd().Subscribe(errMsg => { Debug.Log(errMsg.Value); if (onFailed != null) { onFailed(errMsg.Value); } }); _isDownloading = true; yield return(StartCoroutine(request)); _isDownloading = false; var bundle = request.GetLoadedBundle(); if (bundle == null) { onFailed("获取Bundle失败"); } onSuccess(bundle); }
private static void LoadResourceInternalImp(string assetName, string bundleName, Hoba.Action <UnityObject> onLoadFinish, bool needInstantiate) { LoadAssetBundle(bundleName); AssetBundleLoadOperation operation = null; if (string.IsNullOrEmpty(assetName)) { operation = new AssetBundleLoadBundleOperation(bundleName, onLoadFinish); } else { operation = new AssetBundleLoadAssetOperation(assetName, bundleName, onLoadFinish, needInstantiate); } _InProgressOperations.Add(operation); }