Files
Main/Assets/Plugins/References/FuncellBase/AssetsCache/AssetsCacheManager.cs

57 lines
1.9 KiB
C#
Raw Normal View History

2025-01-25 04:38:09 +08:00
using UnityEngine;
using FLogger = UnityEngine.Gonbest.MagicCube.FLogger;
namespace Thousandto.Core.Base
{
/// <summary>
/// 资源Cache管理器
/// 1.AppPersistData.LastCacheResBaseCode在启动的时候判断是否为新的app时进行增加1000
/// 2.通过修复记录来进行增加1
/// </summary>
public class AssetsCacheManager
{
//资源文件的标记
private const string CN_ASSET_FILE_FLAG = "GameAssets/Resources/";
//文件修复记录
private static RepairRecordFileData _repairRecord = new RepairRecordFileData();
//cahce的基础版本号
private static int _baseCacheVersion = 0;
//初始化处理
public static void Initialize()
{
_baseCacheVersion = UnityEngine.Gonbest.MagicCube.AppPersistData.LastCacheResBaseCode;
SetCacheMaxSize(800);
_repairRecord.Read();
Debug.Log("BaseCacheVersion:"+ _baseCacheVersion);
}
/// <summary>
/// 获取文件版本
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static int GetFileVersion(string filePath)
{
int idx = filePath.IndexOf(CN_ASSET_FILE_FLAG);
if (idx >= 0)
{
return _repairRecord.GetRepairCount(filePath.Substring(idx)) + _baseCacheVersion;
}
return _baseCacheVersion;
}
#region //私有函数
//设置Cache的大小
private static void SetCacheMaxSize(int size)
{
var curCache = Caching.defaultCache;
curCache.maximumAvailableStorageSpace = size * 1024 * 1024;
FLogger.Log("设置Cache大小为:", curCache.maximumAvailableStorageSpace, "可用空间:", curCache.spaceFree, "已用:", curCache.spaceOccupied);
}
#endregion
}
}