Example #1
0
        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()));
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
 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;
     }
 }