155 lines
4.4 KiB
C#
155 lines
4.4 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.Events;
|
||
using LuaInterface;
|
||
using GameCore;
|
||
using System.IO;
|
||
|
||
namespace JLLogic {
|
||
/// <summary>
|
||
/// 资源管理器
|
||
/// </summary>
|
||
public class ResourcesManager : Singleton<ResourcesManager>
|
||
{
|
||
public bool isLoading;
|
||
ResMgr.ResourcesManager resMgr = ResMgr.ResourcesManager.Instance;
|
||
|
||
/// <summary>
|
||
/// 初始化
|
||
/// </summary>
|
||
public void Initialize(bool isReleaseVer)
|
||
{
|
||
//资源路径配置
|
||
ResMgr.ResConfig.PersistentDataPath = AppConst.PersistentDataPath;
|
||
ResMgr.ResConfig.StreamPath = AppConst.StreamPath;
|
||
resMgr.Init(isReleaseVer);
|
||
Debug.LogFormat("================>ResourcesManager.Initialize,isReleaseVer:{0}",isReleaseVer);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 同步加载资源
|
||
/// </summary>
|
||
/// <typeparam name="T">资源类型</typeparam>
|
||
/// <param name="assetName">资源名</param>
|
||
/// <returns></returns>
|
||
[NoToLua]
|
||
public T LoadAsset<T>(string assetName) where T : Object
|
||
{
|
||
return resMgr.LoadAsset<T>(assetName);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 同步加载资源
|
||
/// </summary>
|
||
/// <param name="assetName">资源名</param>
|
||
/// <returns></returns>
|
||
public Object LoadAsset(string assetName)
|
||
{
|
||
return resMgr.LoadAsset<Object>(assetName);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 异步加载资源
|
||
/// </summary>
|
||
/// <typeparam name="T"></typeparam>
|
||
/// <param name="assetName"></param>
|
||
/// <param name="action"></param>
|
||
[NoToLua]
|
||
public void LoadAssetAsync<T>(string assetName, UnityAction<string, T> action) where T : Object
|
||
{
|
||
resMgr.LoadAssetAsync<T>(assetName, action);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 异步加载资源
|
||
/// </summary>
|
||
/// <param name="assetName"></param>
|
||
/// <param name="action"></param>
|
||
[NoToLua]
|
||
public void LoadAssetAsync(string assetName, UnityAction<string, Object> action)
|
||
{
|
||
resMgr.LoadAssetAsync<Object>(assetName, action);
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// Lua异步加载资源
|
||
/// </summary>
|
||
/// <param name="assetName"></param>
|
||
/// <param name="luaFunction"></param>
|
||
public void LoadAssetAsync(string assetName, LuaFunction luaFunction)
|
||
{
|
||
resMgr.LoadAssetAsync<Object>(assetName, (name, obj) =>
|
||
{
|
||
if (luaFunction != null)
|
||
{
|
||
Debug.Log("ResourcesManager LoadAssetAsync luaFunc");
|
||
luaFunction.Call(name, obj);
|
||
}
|
||
else {
|
||
Debug.Log("ResourcesManager LoadAssetAsync luaFunc ==null");
|
||
}
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 卸载资源
|
||
/// </summary>
|
||
/// <param name="assetName"></param>
|
||
public void UnLoadAsset(string assetName)
|
||
{
|
||
resMgr.UnLoadAsset(assetName);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 卸载游戏
|
||
/// </summary>
|
||
public void UnLoadGame()
|
||
{
|
||
resMgr.UnLoadAll();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 卸载没有使用的资源和AssetBundle
|
||
/// </summary>
|
||
public void UnLoadUnUseAssetAndAssetBundle()
|
||
{
|
||
resMgr.UnLoadUnUseAssetAndAssetBundle();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 是否拥有某个资源
|
||
/// </summary>
|
||
/// <param name="asset">资源名</param>
|
||
/// <returns></returns>
|
||
public bool HaveAsset(string asset)
|
||
{
|
||
return resMgr.HaveAsset(asset);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 卸载掉所有资源(平台和游戏)
|
||
/// </summary>
|
||
public void UnLoadAll() {
|
||
resMgr.UnLoadAll();
|
||
}
|
||
|
||
|
||
public void Reset()
|
||
{
|
||
}
|
||
|
||
#region 更新apk后,清空缓存文件
|
||
public void ClearFilesCache()
|
||
{
|
||
if (Directory.Exists(Application.persistentDataPath))
|
||
Directory.Delete(Application.persistentDataPath, true);
|
||
Directory.CreateDirectory(Application.persistentDataPath);
|
||
|
||
SDK.SDKManager.Instance.ClearFileCacheAndroid();
|
||
}
|
||
#endregion
|
||
}
|
||
}
|