public Object[] GetBundleObjs(string bundleName, string resName) { BundleBackNode backNode = GetBackNode(bundleName); // Debug.Log("bundleName ==" + bundleName); return(backNode.GetResObjs(resName)); }
public Object[] GetBundleObjs(int index, int resIndex) { BundleBackNode backNode = bundleNode[index]; return(backNode.GetResObjs(resIndex)); }
//HunkRes = ManagerID.AssetManager+1, //ReleaseSingleObj , //释放单个object //ReleaseBundleObjes,//释放一个bundle 包里 所有的object //ReleaseScenceObjes,// 释放 单个场景中所有的 object //ReleaseSingleBundle,//释放单个 assetbundle //ReleaseScenceBundle,//释放 一个场景中的所有的assetbundle //ReleaseAll,// 释放 一个场景中所有的 bundle 和 objects public override void ProcessEvent(MsgBase msg) { switch (msg.msgId) { case (ushort)AssetEvent.HunkMutiRes: { AssetRequesetMsg tmpMsg = (AssetRequesetMsg)msg; tmpMsg.requesetInfo.Debug(); BundleRequest tmpRequeset = MutiResManager.AddRequeset(tmpMsg); try { int tmpCount = tmpRequeset.bundleNode.Length; for (int i = 0; i < tmpCount; i++) { BundleBackNode tmpNode = tmpRequeset.bundleNode[i]; string bundlFullName = ILoadManager.Instance.GetBundleRelateName(tmpNode.ScenceName, tmpNode.BundleName); tmpNode.FullBundleName = bundlFullName; MutiResManager.AddNodes(tmpNode); RequesetBundle(tmpNode.ScenceName, tmpNode.BundleName, bundlFullName); } } catch (System.Exception e) { Debug.LogError("e ==" + e); } } break; case (ushort)AssetEvent.HunkScences: { RequesetScenceMsg tmpMsg = (RequesetScenceMsg)msg; ILoadManager.Instance.LoadAsset(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.backDelegate); } break; default: break; } }
/// <summary> /// bundle load 到内存中了 去加载 res /// </summary> /// <param name="node"></param> void RequesetNode(BundleBackNode node) { int tmpCount = node.bundleInfo.Length; for (int i = 0; i < tmpCount; i++) { BundleInfo tmpInfo = node.bundleInfo[i]; GetResources(tmpInfo); } }
public void DebugBundle() { // Debuger.Log("bundleNode.Length====" + bundleNode.Length); for (int i = 0; i < bundleNode.Length; i++) { // Debuger.Log("bundleNode.Length=2222===" + i); BundleBackNode backNode = bundleNode[i]; backNode.DebugObj(); } }
public void ResLoadFinish(BundleBackNode node) { bundleCount++; if (bundleCount == bundleNode.Length) { // Debug.Log("bundleCount==" + bundleCount); // Debuger.Log("hunck the whole Bundle back ==" + node.bundleName); AssetResponseMsg tmpResponse = new AssetResponseMsg(this); assetBase.SendMsg(tmpResponse); requesetCallBack(this); } }
public BundleRequest(AssetRequesetInfo info, AssetBase mono, BundleRequesetBack callBack) { requesetCallBack = new BundleRequesetBack(callBack); this.requesetInfo = info; bundleCount = 0; this.assetBase = mono; //info.Debug(); bundleNode = new BundleBackNode[info.bundles.Length]; for (int i = 0; i < info.bundles.Length; i++) { BundleBackNode tmpBundle = new BundleBackNode(info.resSingle[i], info.scenceName, info.bundles[i], null, info.resNames[i]); tmpBundle.AddCallBack(ResLoadFinish); bundleNode[i] = tmpBundle; } }
/// <summary> /// assetbundle 已经load 到内存中回调 /// </summary> /// <param name="fullBundleName"></param> public void BundleLoadFinish(string fullBundleName) { if (manager.ContainsKey(fullBundleName)) { NodeBase topNode = manager[fullBundleName]; do { BundleBackNode tmpNode = (BundleBackNode)topNode; requesetCallBack(tmpNode); // 去请求资源 topNode = topNode.next; }while (topNode != null); //bundle 加载完成 manager.Remove(fullBundleName); } // requesetManager }
public BundleBackNode(bool[] single, string scence, string bundle, BundleBackNode nextValue, params string[] res) { this.next = nextValue; this.scenceName = scence; this.bundleName = bundle; this.bundleInfo = new BundleInfo[res.Length]; for (int i = 0; i < res.Length; i++) { this.bundleInfo[i] = new BundleInfo(single[i], scence, bundle, res[i], AddReses); } // this.resName = res; // this.resObjs = new Object[resName.Length][]; this.initialCount = 0; }
/// <summary> /// 以assetbundle full name 为链表 key /// </summary> /// <param name="tmpNode"></param> public void AddNodes(BundleBackNode tmpNode) { this.AddNode(tmpNode.FullBundleName, tmpNode); }