public void Dispose() { callBack = null; nextValue = null; this.scenceName = null; this.bundleName = null; this.resName = null; }
public void Dispose() { nextValue = null; callBack = null; resName = null; bundleName = null; scenceName = null; }
public void Dispose() { nextNode = null; callBack = null; sceneName = null; bundleName = null; resName = null; }
public NativeResCallBackNode(bool isSingle, string sceneName, string bundleName, string resName, ushort backMagID, NatvieResCallBack callBack, NativeResCallBackNode nextNode) { this.sceneName = sceneName; this.bundleName = bundleName; this.resName = resName; this.backMagID = backMagID; this.isSingle = isSingle; this.nextNode = nextNode; this.callBack = callBack; }
public NativeResCallBackNode(bool tmpSingle, string tmpSceneName, string tmpBundle, string tmpRes, ushort tmpBackId, NativeResCallBack callBack, NativeResCallBackNode tmpNode) { this.isSingle = tmpSingle; this.sceneName = tmpSceneName; this.bundleName = tmpBundle; this.resName = tmpRes; this.backMsgId = tmpBackId; this.callBack = callBack; this.nextNode = tmpNode; }
public NativeResCallBackNode(bool isSingle, string sceneName, string bundleName, string resName , ushort backId, NativeResCallBack callBack, NativeResCallBackNode backNode) { IsSingle = isSingle; SceneName = sceneName; BundleName = bundleName; ResName = resName; BackMsgId = backId; NextNode = backNode; CallBack = callBack; }
private void GetResources(string sceneName, string bundleName, string resName, bool isSingle, ushort backID) { if (!ILoaderManager.Instance.IsLoadingAssetBundle(sceneName, bundleName)) // 没有加载 // 加载并添加请求 { ILoaderManager.Instance.LoadAsset(sceneName, bundleName, OnLoadProgress); string bundleFullName = ILoaderManager.Instance.GetBundleReflectName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backID, OnSendToBackMsg, null); CallBackMgr.AddBundle(bundleFullName, tmpNode); } else { Debug.LogWarning("don't contains bundle = " + bundleName); } } else if (ILoaderManager.Instance.IsLoadingBundleFinish(sceneName, bundleName)) // 有加载,并且加载完成 // 直接返回 { if (isSingle) { UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(sceneName, bundleName, resName); ResBackMsg.Change(backID, tmpObj); SendMsg(ResBackMsg); } else { UnityEngine.Object[] tmpObjs = ILoaderManager.Instance.GetMultiResources(sceneName, bundleName, resName); ResBackMsg.Change(backID, tmpObjs); SendMsg(ResBackMsg); } } else // 已经加载,但没有完成 // 把命令存下来 { string bundleFullName = ILoaderManager.Instance.GetBundleReflectName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backID, OnSendToBackMsg, null); CallBackMgr.AddBundle(bundleFullName, tmpNode); } else { Debug.LogWarning("don't contains bundle = " + bundleName); } } }
public void CallBackRes(string bundles) { if (manager.ContainsKey(bundles)) { NativeResCallBackNode tmpNode = manager[bundles]; do { tmpNode.callBack(tmpNode); tmpNode = tmpNode.nextValue; } while (tmpNode != null); } }
public NativeResCallBackNode(bool tempSingle, string tempScenceName, string tempBundle, string tempResName, ushort tempBackid, NativeResCallBack tmpBack, NativeResCallBackNode tmpNode) { this.isSingle = tempSingle; this.scenceName = tempScenceName; this.bundleName = tempBundle; this.resName = tempResName; this.backMsgId = tempBackid; this.nextValue = tmpNode; this.callBack = tmpBack; }
private void GetResources(string sceneName, string bundleName, string resName, bool isSingle, ushort backid) { //没有加载 if (!ILoaderManager.Instance.IsLoadedAssetBundle(sceneName, bundleName)) { Debug.Log("开始加载"); ILoaderManager.Instance.LoadAsset(sceneName, bundleName, LoaderProgress); string bundleFullName = ILoaderManager.Instance.GetBundleRelativeName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode node = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backid, SendToBackMsg, null); CallBackManager.AddBundle(bundleFullName, node); Debug.Log("Get Resource==" + bundleFullName); } else { Debug.LogWarning("Bundle名为空:" + bundleName); } } //表示已经加载完成 else if (ILoaderManager.Instance.IsLoadingBundleFinish(sceneName, bundleName)) { if (isSingle) { Debug.Log("加载完成"); UnityEngine.Object obj = ILoaderManager.Instance.GetSingleResource(sceneName, bundleName, resName); ResBackMsg.Changer(backid, obj); SendMsg(ResBackMsg); } else { UnityEngine.Object[] objs = ILoaderManager.Instance.GetResources(sceneName, bundleName, resName); ResBackMsg.Changer(backid, objs); SendMsg(ResBackMsg); } } //已经加载但是没有加载完把命令存起来 else { Debug.Log("加载中"); string bundleFullName = ILoaderManager.Instance.GetBundleRelativeName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode node = new NativeResCallBackNode(isSingle, sceneName, bundleFullName, resName, backid, SendToBackMsg, null); CallBackManager.AddBundle(bundleFullName, node); } else { Debug.LogWarning("Bundle名为空:" + bundleName); } } }
/// <summary> /// /// </summary> /// <param name="scenceName"> 场景名字</param> /// <param name="bundleName"> bundle</param> /// <param name="res">资源名字</param> /// <param name="single">加载的是一个资源 还是多个</param> /// <param name="luaFunc">lua回调函数</param> public void GetResources(string scenceName, string bundleName, string res, bool single, ushort msgid) { //Debug.LogWarning("begin load bundle name ==="+bundleName); ///没有加载 if (!ILoadManager.Instance.IsLoadingAssetBundle(scenceName, bundleName)) { ILoadManager.Instance.LoadAsset(scenceName, bundleName, LoaderProgrocess); string bundlFullName = ILoadManager.Instance.GetBundleRelateName(scenceName, bundleName); if (bundlFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(scenceName, bundleName, res, msgid, single, SendToBackMsg, null); CallBack.AddBundle(bundlFullName, tmpNode); } else { Debuger.LogWarning("doest not contain bundle" + bundleName); } } // 已经加载完成 else if (ILoadManager.Instance.IsLoadingBundleFinish(scenceName, bundleName)) { if (single) { Object tmpObj = ILoadManager.Instance.GetSingleResources(scenceName, bundleName, res); // topNode.scenceName, topNode.bundleName, topNode.resName, tmpObj this.ResesBackMsg.ChangeMsg(msgid, tmpObj); SendMsg(ResesBackMsg); } else { Object[] tmpObj = ILoadManager.Instance.GetMutiResources(scenceName, bundleName, res); // topNode.scenceName, topNode.bundleName, topNode.resName, tmpObj this.ResesBackMsg.ChangeMsg(msgid, tmpObj); SendMsg(ResesBackMsg); } } // 已经加载 并且 没有完成 else { string bundlFullName = ILoadManager.Instance.GetBundleRelateName(scenceName, bundleName); NativeResCallBackNode tmpNode = new NativeResCallBackNode(scenceName, bundleName, res, msgid, single, SendToBackMsg, null); CallBack.AddBundle(bundlFullName, tmpNode); ILoadManager.Instance.AddLoadFinishBackDelegate(scenceName, bundleName, LoaderProgrocess); } }
public void CallBackRes(string bundle) { if (mNodeManager.ContainsKey(bundle)) { Debug.Log("调用了回调+bundleName: " + bundle); NativeResCallBackNode headNode = mNodeManager[bundle]; do { headNode.CallBack.Invoke(headNode); headNode = headNode.NextNode; } while (headNode != null); } }
//Load public void GetResources(string scencename, string bundleName, string resName, bool single, ushort backId) { //没有加载 if (!ILoaderManager.Instance.IsLoadingAssetBundle(scencename, bundleName)) { ILoaderManager.Instance.LoadAsset(scencename, bundleName, LoadingProgress); string bundleFullName = ILoaderManager.Instance.GetBundleretateName(scencename, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(single, scencename, bundleName, resName, backId, SendToBackMsg, null); callBack.AddBundle(bundleFullName, tmpNode); } else { Debug.Log("Do not cotain bundle:" + bundleFullName); } } if (ILoaderManager.Instance.IsLoadingBundleFinish(scencename, bundleName)) //加载完成 { if (single) { Object tmpobj = ILoaderManager.Instance.GetSingleResource(scencename, bundleName, resName); this.ReleaseBack.Changer(backId, tmpobj); SendMsg(ReleaseBack); } else { Object[] tmpobj = ILoaderManager.Instance.GetMutiResources(scencename, bundleName, resName); this.ReleaseBack.Changer(backId, tmpobj); SendMsg(ReleaseBack); } } else// 已经加载但是没有加载完成 { string bundleFullname = ILoaderManager.Instance.GetBundleretateName(scencename, bundleName); if (bundleFullname != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(single, scencename, bundleName, resName, backId, SendToBackMsg, null); callBack.AddBundle(bundleName, tmpNode); } else { Debug.Log("Do not cotain bundle:" + bundleName); } } }
//加载完成后,消息向上层传递完成了,就把命令 public void Dispose(string bundle) { if (manager.ContainsKey(bundle)) { NativeResCallBackNode tmpNode = manager[bundle]; while (tmpNode.nextNode != null) { NativeResCallBackNode curNode = tmpNode; tmpNode = tmpNode.nextNode; curNode.Dispose(); manager.Remove(bundle); } } }
public void CallBackRes(string bundleName) { if (callBackNodes.ContainsKey(bundleName)) { NativeResCallBackNode curNode = callBackNodes[bundleName]; do { curNode.callBack(curNode); curNode = curNode.nextNode; } while (curNode != null); } }
public NativeResCallBackNode(string scence, string bundle, string res, ushort msgid, bool single, NativeResCallBack tmpBack, NativeResCallBackNode tmpNode) { this.callBack = tmpBack; this.bundleName = bundle; this.resName = res; this.nextValue = tmpNode; this.msgId = msgid; this.isSingle = single; this.scenceName = scence; }
/// <summary> /// 加载完成后且向上传递消息,传递完后调用 /// </summary> /// <param name="bundle"></param> public void Dispose(string bundle) { if (mNodeManager.ContainsKey(bundle)) { NativeResCallBackNode headNode = mNodeManager[bundle]; while (headNode.NextNode != null) { NativeResCallBackNode curNode = headNode; headNode = headNode.NextNode; curNode.Dispose(); } headNode.Dispose(); mNodeManager.Remove(bundle); } }
/// <summary> /// Node回调,在加载Bundel包后调用 /// </summary> /// <param name="node"></param> public void SendToBackMsg(NativeResCallBackNode node) { if (node.IsSingle) { UnityEngine.Object obj = ILoaderManager.Instance.GetSingleResource(node.SceneName, node.BundleName, node.ResName); this.ResBackMsg.Changer(node.BackMsgId, obj); SendMsg(ResBackMsg); } else { UnityEngine.Object[] objs = ILoaderManager.Instance.GetResources(node.SceneName, node.BundleName, node.ResName); this.ResBackMsg.Changer(node.BackMsgId, objs); SendMsg(ResBackMsg); } }
public void GetResource(string sceneName, string bundleName, string res, bool single, ushort backId) { if (!ILoaderManager.Instance.IsLoadBundleFinish(sceneName, bundleName)) { ILoaderManager.Instance.LoadAsset(sceneName, bundleName, LoaderProgrecess); string bundleFullName = ILoaderManager.Instance.GetBundleRetateName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(single, sceneName, bundleName, res, backId, SendToBackMsg, null); CallBack.AddBundle(bundleFullName, tmpNode); Debug.Log("GetRescources ==" + bundleFullName); } else { Debug.LogWarning("Do not contain bundle ==" + bundleName); } } //表示已经加载完成 else if (ILoaderManager.Instance.IsLoadBundleFinish(sceneName, bundleName)) { if (single) { UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(sceneName, bundleName, res); this.ReleaseBack.Changer(backId, tmpObj); SendMsg(ReleaseBack); } else { UnityEngine.Object[] tmpObj = ILoaderManager.Instance.GetMultiResources(sceneName, bundleName, res); this.ReleaseBack.Changer(backId, tmpObj); SendMsg(ReleaseBack); } } else { //已经加载但是没有完成 string bundleFullName = ILoaderManager.Instance.GetBundleRetateName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(single, sceneName, bundleName, res, backId, SendToBackMsg, null); CallBack.AddBundle(bundleName, tmpNode); } else { Debug.LogWarning("Do not contain bundle ==" + bundleName); } } }
/// <summary> /// 添加节点 /// </summary> /// <param name="bundle"></param> /// <param name="callBackNode"></param> public void AddBundle(string bundle, NativeResCallBackNode callBackNode) { if (mNodeManager.ContainsKey(bundle)) { NativeResCallBackNode headNode = mNodeManager[bundle]; while (headNode != null) { headNode = headNode.NextNode; } headNode.NextNode = callBackNode; } else { mNodeManager.Add(bundle, callBackNode); } }
//来了请求添加的过程 public void AddBundle(string bundle, NativeResCallBackNode curNode) { if (manager.ContainsKey(bundle)) { NativeResCallBackNode tmpNode = manager[bundle]; while (tmpNode.nextValue != null) { tmpNode = tmpNode.nextValue; } tmpNode = curNode; } else { manager.Add(bundle, curNode); } }
//node回调 public void SendToBackMsg(NativeResCallBackNode tmpNode) { if (tmpNode.isSingle) { Object tmpobj = ILoaderManager.Instance.GetSingleResource(tmpNode.scenceName, tmpNode.bundleName, tmpNode.resName); this.ReleaseBack.Changer(tmpNode.backMsgId, tmpobj); SendMsg(ReleaseBack); } else { Object[] tmpobj = ILoaderManager.Instance.GetMutiResources(tmpNode.scenceName, tmpNode.bundleName, tmpNode.resName); this.ReleaseBack.Changer(tmpNode.backMsgId, tmpobj); SendMsg(ReleaseBack); } }
/// <summary> /// 来了请求添加过程 /// </summary> /// <param name="bundleName"></param> /// <param name="node"></param> public void AddBundle(string bundleName, NativeResCallBackNode node) { if (callBackNodes.ContainsKey(bundleName)) { NativeResCallBackNode tmpNode = callBackNodes[bundleName]; // 存到链表最后 while (tmpNode.nextNode != null) { tmpNode = tmpNode.nextNode; } tmpNode.nextNode = node; } else { callBackNodes.Add(bundleName, node); } }
// void NativeResCallBack(NativeResCallBackNode tmpNode) public void SendToBackMsg(NativeResCallBackNode tmpNode) { if (tmpNode.isSingle) { Object tmpObj = ILoadManager.Instance.GetSingleResources(tmpNode.scenceName, tmpNode.bundleName, tmpNode.resName); // topNode.scenceName, topNode.bundleName, topNode.resName, tmpObj this.ResesBackMsg.ChangeMsg(tmpNode.msgId, tmpObj); SendMsg(ResesBackMsg); } else { Object[] tmpObj = ILoadManager.Instance.GetMutiResources(tmpNode.scenceName, tmpNode.bundleName, tmpNode.resName); // topNode.scenceName, topNode.bundleName, topNode.resName, tmpObj this.ResesBackMsg.ChangeMsg(tmpNode.msgId, tmpObj); SendMsg(ResesBackMsg); } }
/// <summary> /// node 回调 回复上层消息 /// </summary> /// <param name="node"></param> private void OnSendToBackMsg(NativeResCallBackNode node) { if (node.isSingle) { // 获取资源 UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(node.sceneName, node.bundleName, node.resName); // 设置参数并发送 ResBackMsg.Change(node.backMagID, tmpObj); SendMsg(ResBackMsg); } else { UnityEngine.Object[] tmpObj = ILoaderManager.Instance.GetMultiResources(node.sceneName, node.bundleName, node.resName); ResBackMsg.Change(node.backMagID, tmpObj); SendMsg(ResBackMsg); } }
/// <summary> /// 加载完成后,消息向上层传递完成了,就把这些缓存的命令删除 /// </summary> /// <param name="bundleName"></param> public void DisPose(string bundleName) { if (callBackNodes.ContainsKey(bundleName)) { NativeResCallBackNode curNode = callBackNodes[bundleName]; NativeResCallBackNode nextNode = null; // 挨个释放node do { nextNode = curNode.nextNode; curNode.Dispose(); curNode = nextNode; } while (curNode != null); callBackNodes.Remove(bundleName); } }
public void CallBackRes(string bundle) { if (manager.ContainsKey(bundle)) { NativeResCallBackNode topNode = manager[bundle]; do { topNode.callBack(topNode); topNode = topNode.nextValue; }while (topNode != null); } else { // Debuger.Log("extern contain bundle ==" + bundle); } }
public void SendToBackMsg(NativeResCallBackNode tmpNode) { if (tmpNode.isSingle) { Debug.Log("tmpNode === finish"); UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(tmpNode.sceneName, tmpNode.bundleName, tmpNode.resName); Debug.Log("tmpNode 1111 === finish ==" + tmpObj.name); //this.ReleaseBack.Changer(tmpNode.backMsgId, tmpObj); resBackMsg.Changer(tmpNode.backMsgId, tmpObj); Debug.Log("tmpNode 2222 === finish"); SendMsg(resBackMsg); } else { UnityEngine.Object[] tmpObj = ILoaderManager.Instance.GetMultiResources(tmpNode.sceneName, tmpNode.bundleName, tmpNode.resName); this.resBackMsg.Changer(tmpNode.backMsgId, tmpObj); SendMsg(resBackMsg); } }
public void Dispose(string bundle) { if (manager.ContainsKey(bundle)) { NativeResCallBackNode topNode = manager[bundle]; // 挨个释放 while (topNode.nextValue != null) { NativeResCallBackNode curNode = topNode; topNode = topNode.nextValue; curNode.Dispose(); } // 最后一个结点的释放 topNode.Dispose(); manager.Remove(bundle); } }