Exemplo n.º 1
0
    public void LoadMulti(Queue <AssetRecord> queue, bool isCacheToRecord,
                          LoadMethod method, Action <object> onLoadingEnd, Action onAllLoaded)
    {
        if (queue.Count == 0 && onAllLoaded != null)
        {
            Debug.Log("LoadMulti ~ 无任何可加载的东西 ");
            onAllLoaded();
        }
        else
        {
            int             count   = queue.Count;
            ProgressMonitor monitor = new ProgressMonitor(count, ProgressState.LOAD);
            while (queue.Count > 0)
            {
                AssetRecord assetRecord = queue.Dequeue();
                LoadFile    loadFile    = assetRecord.GetLoadFile(LoadBehaviour.ContentLoadFromLoacal_LoadBundleFile,
                                                                  isCacheToRecord, onLoadingEnd, (loadedFile) =>
                {
                    count--;
                    monitor.Refresh(loadedFile);
                    if (count == 0 && onAllLoaded != null)
                    {
                        onAllLoaded();
                    }
                });

                LoadFileController.Instance.Load(loadFile);
            }
        }
    }