Example #1
0
        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);
        }
Example #2
0
        public void AddListener(IResourcesListener listener)
        {
            if (Listeners == null)
            {
                Listeners = new List <IResourcesListener>();
            }

            if (Listeners.Contains(listener))
            {
                return;
            }

            Listeners.Add(listener);
        }
Example #3
0
 public void Load(string assetName, Type assetType, IResourcesListener listener)
 {
     //如果已经加载,直接返回
     if (nameAssetDict.ContainsKey(assetName))
     {
         listener.OnLoaded(assetName, nameAssetDict[assetName]);
         return;
     }
     else
     {
         //没有加载,开始异步加载
         LoadAsync(assetName, assetType, listener);
     }
 }