public AssetBundle GetAssetBundle(string name) { AssetBundleRef abRef = null; if (mRefDict.TryGetValue(name, out abRef)) { return(abRef.mAB); } return(null); }
public void UnloadAssetBundle(string name) { AssetBundleRef abRef = null; if (mRefDict.TryGetValue(name, out abRef)) { abRef.DecRef(); if (!abRef.HasRef()) { abRef.StopAndUnload(); mRefDict.Remove(name); } } }
public IEnumerator LoadAssetBundle(string name) { AssetBundleRef abRef = null; if (mRefDict.TryGetValue(name, out abRef)) { abRef.IncRef(); while (abRef.mReq != null && abRef.mAB == null) { yield return(null); } yield break; } abRef = new AssetBundleRef(); if (abRef == null) { yield break; } abRef.IncRef(); mRefDict.Add(name, abRef); abRef.mReq = AssetBundle.LoadFromFileAsync(VersionManager.Instance.GetFilePath("AssetBundles", name)); yield return(abRef.mReq); // 创建失败或者被强行中断 if (abRef.mReq == null) { yield break; } // 加载失败 if (abRef.mReq.assetBundle == null) { LogManager.Debug(string.Format("{0}::{1} => can't load {2}", "AssetBundleManager", "LoadAssetBundle", name)); yield break; } abRef.mAB = abRef.mReq.assetBundle; abRef.mReq = null; }