public void LoadAsync(string assetName, Type assetType, IResourcesListener listener) { //资源正在被加载,还没加载完 foreach (var item in loadingList) { if (item.AssetName == assetName) { item.AddListener(listener); return; } } //等待的队列里有 foreach (var item in waitingQue) { if (item.AssetName == assetName) { item.AddListener(listener); return; } } //都没有,先创建 LoadAssets asset = new LoadAssets(); asset.AssetName = assetName; asset.AssetType = assetType; asset.AddListener(listener); //添加到等待队列 waitingQue.Enqueue(asset); }
public void AddListener(IResourcesListener listener) { if (Listeners == null) { Listeners = new List <IResourcesListener>(); } if (Listeners.Contains(listener)) { return; } Listeners.Add(listener); }
public void Load(string assetName, Type assetType, IResourcesListener listener) { //如果已经加载,直接返回 if (nameAssetDict.ContainsKey(assetName)) { listener.OnLoaded(assetName, nameAssetDict[assetName]); return; } else { //没有加载,开始异步加载 LoadAsync(assetName, assetType, listener); } }