Esempio n. 1
0
    // -----------------------------------------------------------------------------------------------------------------------------------
    public void Load(RuntimeAssetType type, string indexName,
                     bool isCacheToRecord = false, Action <object> OnAssetLoaded = null)
    {
        if (!IsInitialized)
        {
            Debug.Log("尚未初始化!");
            return;
        }

        AssetRecord record = RecordsInfo.GetAssetRecord(type, indexName);

        if (record != null)
        {
            //LoadMethod loadMethod = (type == RuntimeAssetType.BUNDLE_PREFAB ||
            //                         type == RuntimeAssetType.BUNDLE_SCENE) ?
            //                         LoadMethod.BUNDLE_FILE : LoadMethod.WWW;

            //LoadFile loadFile = record.GetLoadFile(FileAddressType.LOCAL, isCacheToRecord,
            //                                       loadMethod, FileAddressType.NULL, OnAssetLoaded);

            LoadBehaviour behaviour = (type == RuntimeAssetType.BUNDLE_PREFAB ||
                                       type == RuntimeAssetType.BUNDLE_SCENE) ?
                                      LoadBehaviour.ContentLoadFromLoacal_LoadBundleFile :
                                      LoadBehaviour.ContentLoadFromLoacal_WWW;

            LoadFile loadFile = record.GetLoadFile(behaviour, isCacheToRecord, OnAssetLoaded);
            LoadFileController.Instance.Load(loadFile);
        }
        else
        {
            Debug.Log(indexName + "未找到此资源!!!!!");
        }
    }
Esempio n. 2
0
        private void SetMainManifest(UpdateFiles updateFiles)
        {
            AssetRecordsInfo info   = AssetsManager.Instance.RecordsInfo;
            AssetRecord      record = info.GetAssetRecord(RuntimeAssetType.MANIFEST, info.mainManifestFileName);

            if (record != null)
            {
                LoadFile loadFile = record.GetLoadFile(LoadBehaviour.ContentLoadFromLoacal_LoadBundleFile, false, (obj) =>
                {
                    AssetBundle bundle = obj as AssetBundle;
                    AssetsManager.Instance.ABManifest = bundle.LoadAsset <AssetBundleManifest>("AssetBundleManifest");
                }, (loaded) =>
                {
                    //string[] testArray = mainManifest.GetAllAssetBundles();
                    //var it = testArray.GetEnumerator();
                    //while (it.MoveNext())
                    //{
                    //    Debug.Log(it.Current);
                    //}
                    AssetsManager.Instance.IsInitialized = true;
                    Debug.Log("资源以及配置加载完毕!");
                    if (updateFiles.onUpdated != null)
                    {
                        updateFiles.onUpdated();
                    }
                });

                LoadFileController.Instance.Load(loadFile);
            }
        }
Esempio n. 3
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);
            }
        }
    }
Esempio n. 4
0
 private void LoadFiles(List <AssetRecord> list, LoadBehaviour behaviour, bool isCacheToRecord, Action onAllLoaded)
 {
     if (list.Count == 0 && onAllLoaded != null)
     {
         onAllLoaded();
     }
     else
     {
         int count = list.Count;
         monitor.CaculateInit(count);
         var it = list.GetEnumerator();
         while (it.MoveNext())
         {
             AssetRecord assetRecord = it.Current;
             LoadFile    loadFile    = assetRecord.GetLoadFile(behaviour, isCacheToRecord, null, (loadedFile) =>
             {
                 if (!loadedFile.IsLoadSuccess)
                 {
                     isAllFilesExist = false;
                 }
                 count--;
                 monitor.Refresh(loadedFile);
                 if (count == 0 && onAllLoaded != null)
                 {
                     onAllLoaded();
                 }
             });
             LoadFileController.Instance.Load(loadFile);
         }
     }
 }