using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using GameCore; using Object = UnityEngine.Object; namespace GameLogic { /// /// 全局资源加载器 /// public class GlobalResLoader { List list = new List(); /// /// 加载完成回调 /// Action action; /// /// 加载完成数量 /// int finishCount; /// /// 所有数量 /// int totalCount; /// /// 加载全局资源 /// public void LoadGlobalRes(Action action) { this.action = action; App.ResMgr.Initialize(AppConst.bundleMode); StringArrayConfig config = App.ResMgr.LoadAsset("InitResConfig"); App.ResMgr.UnLoadAsset(config.name); totalCount = config.Configs.Length; for (int i = 0; i < config.Configs.Length; i++) { App.ResMgr.LoadAssetAsync(config.Configs[i],LoadOneFinish); } } public void UnLoadAll() { for(int i=0;i /// 详细的进度 /// public float Progress { get { if (totalCount == 0) return 1f; return finishCount / totalCount; } } /// /// 是否加载完成 /// public bool IsLoadFinish { get { return finishCount == totalCount; } } /// /// 加载完成回调 /// /// private void LoadOneFinish(string name,Object asset) { list.Add(asset); finishCount++; if (IsLoadFinish&&action!=null) { action(); action = null; } } } }