public IEnumerator AddLoadAssetBundleAsync(string assetPath, UnityAction <AssetBundle> OnAssetBundleLoaded) { ResLoaderInfo info = new ResLoaderInfo() { assetPath = assetPath, OnAssetBundleLoaded = OnAssetBundleLoaded, }; loadQueue.Enqueue(info); if (currLoadInfo == null) { yield return(StartCoroutine(LoadNext())); } }
public IEnumerator LoadAssetBundleAsync(string assetPath, UnityAction <AssetBundle> OnAssetBundleLoaded) { ResLoaderInfo info = new ResLoaderInfo() { assetPath = assetPath, OnAssetBundleLoaded = OnAssetBundleLoaded, }; yield return(bundleLoader.LoadAssetBundleAsync(assetPath, OnAssetBundleLoaded)); if (BundleLoadState.Loading == bundleLoader.GetBundleStateByAssetPath(assetPath)) { Logger.Log("Bundle: {0} is Loading", assetPath); } }
public IEnumerator LoadNext() { if (loadQueue.Count > 0) { currLoadInfo = loadQueue.Dequeue(); if (BundleLoadState.Loading == bundleLoader.GetBundleStateByAssetPath(currLoadInfo.assetPath)) { Logger.Log("Bundle: {0} is Loading", currLoadInfo.assetPath); loadQueue.Enqueue(currLoadInfo);//重新排队列 } else { yield return(bundleLoader.LoadAssetBundleAsync(currLoadInfo.assetPath, currLoadInfo.OnAssetBundleLoaded)); } yield return(StartCoroutine(LoadNext())); } else { currLoadInfo = null; } }