/// <summary> /// 循环处理关系 /// </summary> /// <param name="bundleName">Bundle name.</param> public void DisposeBundle(string bundleName) { if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; List <string> dependences = loader.GetDependences(); for (int i = 0; i < dependences.Count; i++) { if (mLoadHelper.ContainsKey(dependences [i])) { IABRelationMgr dependence = mLoadHelper [dependences[i]]; if (dependence.removeReference(bundleName)) { DisposeBundle(dependence.GetBundleName()); } } } if (loader.GetReference().Count <= 0) { loader.Dispose(); mLoadHelper.Remove(bundleName); } } }
public IEnumerator LoadABDependences(string bundleName, string refName, LoaderProgress progress) { if (!mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = new IABRelationMgr(); loader.Initialize(bundleName, progress); if (refName != null) { loader.AddReference(refName); } mLoadHelper.Add(bundleName, loader); yield return(LoadABs(bundleName)); } else { if (refName != null) { IABRelationMgr loader = mLoadHelper[bundleName]; loader.AddReference(bundleName); } } }
public Object[] GetMultiRes(string bundleName, string resName) { if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object[] tmpObjs = loader.GetMultiRes(resName); AssetObj tmpAssetObj = new AssetObj(tmpObjs); // 缓存里面 是否已经有这个包 if (mLoadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); mLoadObj.Add(bundleName, tmpRes); } return(tmpObjs); } else { return(null); } }
/// <summary> /// Debugs A. /// </summary> /// <param name="bundleName">Scene/test.prefab</param> public void DebugAB(string bundleName) { if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; loader.DebuggerAsset(); } }
public bool IsLoaddingFinish(string bundleName) { if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; return(loader.IsBundleLoadFinish()); } else { Debug.Log("IABRelation no contain bundle==" + bundleName); return(false); } }
/// <summary> /// 全部删除 /// </summary> public void DisposeAllBundleAndRes() { DisposeAllObj(); List <string> keys = new List <string> (); keys.AddRange(mLoadHelper.Keys); for (int i = 0; i < mLoadHelper.Count; i++) { IABRelationMgr loader = mLoadHelper [keys [i]]; loader.Dispose(); } mLoadHelper.Clear(); }
public void LoadAB(string bundleName, LoaderProgress progress, LoadABCallBack callback) { if (!mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = new IABRelationMgr(); loader.Initialize(bundleName, progress); mLoadHelper.Add(bundleName, loader); callback(mSceneName, bundleName); } else { Debug.Log("IABMgr contain bundle name ==" + bundleName); } }
public Object GetSingleRes(string bundleName, string resName) { // 表示 是否已经缓存了物体 if (mLoadObj.ContainsKey(resName)) { AssetResObj tmpRes = mLoadObj [bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj [0]); } } // 表示已经加载过bundle if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object tmpObj = loader.GetSingleRes(resName); AssetObj tmpAssetObj = new AssetObj(tmpObj); if (mLoadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); mLoadObj.Add(bundleName, tmpRes); } return(tmpObj); } else { return(null); } }
/// <summary> /// 加载assetBundle必须先加载manifest /// </summary> callback(sceneName,bundlename);返回上层 调用这个api /// <returns>The A.</returns> /// <param name="bundleName">Bundle name.</param> public IEnumerator LoadABs(string bundleName) { while (!IABManifestLoader.Instance.IsLoadFinish) { yield return(null); } IABRelationMgr loader = mLoadHelper [bundleName]; string[] dependences = GetDependences(bundleName); loader.SetDependences(dependences); for (int i = 0; i < dependences.Length; i++) { yield return(LoadABDependences(dependences [i], bundleName, loader.GetProgress())); } yield return(loader.LoadAB()); }
public IEnumerator LoadABDependences(string bundleName,string refName,LoaderProgress progress) { if(!mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = new IABRelationMgr(); loader.Initialize(bundleName,progress); if (refName != null) { loader.AddReference(refName); } mLoadHelper.Add(bundleName,loader); yield return LoadABs(bundleName); } else { if (refName != null) { IABRelationMgr loader = mLoadHelper[bundleName]; loader.AddReference(bundleName); } } }
public void LoadAB(string bundleName,LoaderProgress progress,LoadABCallBack callback) { if (!mLoadHelper.ContainsKey (bundleName)) { IABRelationMgr loader = new IABRelationMgr (); loader.Initialize (bundleName, progress); mLoadHelper.Add (bundleName, loader); callback (mSceneName, bundleName); } else { Debug.Log ("IABMgr contain bundle name ==" + bundleName); } }