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;
}
}
}
}