public bool RegListener(IBaseResLoaderAsyncListener listener) { if (listener == null) { return(false); } m_ListernMap[listener.UUID] = listener; return(true); }
public void RemoveListener(IBaseResLoaderAsyncListener listener) { if (listener == null) { return; } var uuid = listener.UUID; if (m_ListernMap.ContainsKey(uuid)) { m_ListernMap.Remove(uuid); } }
public bool LoadTextureAsync(string fileName, IBaseResLoaderAsyncListener listener, ulong subID, int loadPriority = 0) { if (listener == null || string.IsNullOrEmpty(fileName)) { return(false); } int uuid = listener.UUID; listener = null; return(ResourceMgr.Instance.LoadTextureAsync(fileName, (float process, bool isDone, Texture target) => { if (isDone) { if (target != null) { IBaseResLoaderAsyncListener listen; if (m_ListernMap.TryGetValue(uuid, out listen) && listen != null) { if (!listen._OnTextureLoaded(target, subID)) { ResourceMgr.Instance.DestroyObject(target); } } else { ResourceMgr.Instance.DestroyObject(target); } } else { IBaseResLoaderAsyncListener listen; if (m_ListernMap.TryGetValue(uuid, out listen) && listen != null) { listen._OnLoadFail(subID); } } } } , ResourceCacheType.rctRefAdd, loadPriority)); }