public void Add2Load(string ownerBundle, string assetName, Action <bool, IRes> listener = null, bool lastOrder = true) { if (string.IsNullOrEmpty(ownerBundle) || string.IsNullOrEmpty(assetName)) { Log.E("Res Name Or Bundle Name Is Null."); return; } IRes res = FindResInArray(mResArray, ownerBundle, assetName); if (res != null) { if (listener != null) { AddResListenerReward(res, listener); res.RegisteResListener(listener); } return; } res = ResMgr.Instance.GetRes(ownerBundle, assetName, true); if (res == null) { return; } if (listener != null) { AddResListenerReward(res, listener); res.RegisteResListener(listener); } //无论该资源是否加载完成,都需要添加对该资源依赖的引用 string[] depends = res.GetDependResList(); if (depends != null) { for (int i = 0; i < depends.Length; ++i) { Add2Load(depends[i]); } } AddRes2Array(res, lastOrder); }
public bool Add2Load(string name, Action <bool, IRes> listener = null, bool lastOrder = true) { if (string.IsNullOrEmpty(name)) { Log.e("Res Name Is Null."); return(false); } IRes res = FindResInArray(m_ResArray, name); if (res != null) { if (listener != null) { AddResListenerReward(res, listener); res.RegisteResListener(listener); } return(true); } res = ResMgr.S.GetRes(name, true); if (res == null) { return(false); } if (listener != null) { AddResListenerReward(res, listener); res.RegisteResListener(listener); } //无论该资源是否加载完成,都需要添加对该资源依赖的引用 string[] depends = res.GetDependResList(); if (depends != null) { for (int i = 0; i < depends.Length; ++i) { Add2Load(depends[i]); } } AddRes2Array(res, lastOrder); return(true); }
private void DoLoadAsync() { var nextNode = m_WaitLoadList.First; LinkedListNode <IRes> currentNode = null; while (nextNode != null) { currentNode = nextNode; IRes res = currentNode.Value; nextNode = currentNode.Next; if (res.IsDependResLoadFinish()) { m_WaitLoadList.Remove(currentNode); if (res.resState != eResState.kReady) { res.RegisteResListener(OnResLoadFinish); res.LoadAsync(); } else { --m_LoadingCount; } } } }
private void RequestUpdateImage() { if (m_Res != null) { m_Res.UnRegisteResListener(OnResLoadFinish); m_Res.SubRef(); m_Res = null; } if (m_Image != null) { m_Image.enabled = false; } if (string.IsNullOrEmpty(m_Url)) { return; } m_Res = ResMgr.Instance.GetRes(string.Format("NetImage:{0}", m_Url), true); m_Res.AddRef(); m_Res.RegisteResListener(OnResLoadFinish); m_Res.LoadAsync(); }
private void RequestUpdateImage() { if (m_PreRes != null) { m_PreRes.UnRegisteResListener(OnResLoadFinish); m_PreRes.SubRef(); m_PreRes = null; } if (m_Res != null) { if (!m_HideWhenLoading) { m_PreRes = m_Res; } } if (m_Image != null && m_PreRes == null) { m_Image.enabled = false; } if (string.IsNullOrEmpty(m_Url)) { return; } m_Res = ResMgr.S.GetRes(string.Format("{0}{1}", m_PrefixKey, m_Url), true); m_Res.AddRef(); m_Res.RegisteResListener(OnResLoadFinish); m_Res.LoadAsync(); }
private void DoLoadAsync() { if (mLoadingCount == 0) { //ResMgr.Instance.timeDebugger.End(); //ResMgr.Instance.timeDebugger.Dump(-1); if (mListener != null) { Action callback = mListener; mListener = null; callback(); } return; } var nextNode = mWaitLoadList.First; LinkedListNode <IRes> currentNode = null; while (nextNode != null) { currentNode = nextNode; IRes res = currentNode.Value; nextNode = currentNode.Next; if (res.IsDependResLoadFinish()) { mWaitLoadList.Remove(currentNode); if (res.State != ResState.Ready) { res.RegisteResListener(OnResLoadFinish); res.LoadAsync(); } else { --mLoadingCount; } } } }