private static AssetManager.Bundle loadBundle(string name, AssetManager.OnBundleLoaded bundleLoaded) { int num = AssetManager.Bundles.FindIndex((AssetManager.Bundle b) => b.Name == name); if (num != -1) { if (AssetManager.Bundles[num].State != AssetManager.State.Loaded) { AssetManager.Bundles[num].BundleLoaded += bundleLoaded; } return(AssetManager.Bundles[num]); } AssetBundle assetBundle = AssetBundle.LoadFromFile(AssetManager.GetStreamingAssetPath(name)); if (assetBundle == null) { GameLog.ErrorT(AssetManager.TAG, "Asset bundle load failed: {0}!", new object[] { name }); return(null); } AssetManager.Bundle bundle = new AssetManager.Bundle(); bundle.Name = name; bundle.AssetBundle = assetBundle; bundle.State = AssetManager.State.Loaded; bundle.BundleLoaded += bundleLoaded; AssetManager.Bundles.Add(bundle); bundle.OnLoaded(); return(bundle); }
private static void UpdateBundleLoading() { for (int i = 0; i < AssetManager.AsyncBundles.Count; i++) { AssetManager.Bundle bundle = AssetManager.AsyncBundles[i]; if (bundle.WWW != null && bundle.WWW.isDone) { if (bundle.WWW.error != null && bundle.WWW.error.Length > 0) { GameLog.ErrorT(AssetManager.TAG, "Asset bundle load failed: {0} {1}!", new object[] { bundle.Name, bundle.WWW.error }); bundle.State = AssetManager.State.Failed; } else { bundle.AssetBundle = bundle.WWW.assetBundle; bundle.WWW = null; bundle.State = AssetManager.State.Loaded; bundle.OnLoaded(); } AssetManager.AsyncBundles.RemoveAt(i--); } } }
// Speed : LoadAsyncBundle < LoadBundle public static AssetManager.Bundle LoadAsyncBundle(string name, AssetManager.OnBundleLoaded bundleLoaded) { int num = AssetManager.Bundles.FindIndex((AssetManager.Bundle b) => b.Name == name); if (num != -1) { if (AssetManager.Bundles[num].State != AssetManager.State.Loaded) { AssetManager.Bundles[num].BundleLoaded += bundleLoaded; } return(AssetManager.Bundles[num]); } WWW wWW = WWW.LoadFromCacheOrDownload(AssetManager.GetStreamingAssetWWWPath(name), 1); if (wWW == null) { GameLog.ErrorT(AssetManager.TAG, "Asset bundle load failed: {0}!", new object[] { name }); return(null); } AssetManager.Bundle bundle = new AssetManager.Bundle(); bundle.Name = name; bundle.WWW = wWW; bundle.State = AssetManager.State.Loading; bundle.BundleLoaded += bundleLoaded; AssetManager.Bundles.Add(bundle); AssetManager.AsyncBundles.Add(bundle); return(bundle); }