feat : add GetAllCacheFileInfosAsync method

This commit is contained in:
hevinci
2024-02-18 12:11:29 +08:00
parent 7586882a97
commit 6eb9a90a03
9 changed files with 204 additions and 65 deletions

View File

@@ -190,6 +190,7 @@ namespace YooAsset
Manifest.BundleList = new List<PackageBundle>(_packageBundleCount);
Manifest.BundleDic1 = new Dictionary<string, PackageBundle>(_packageBundleCount);
Manifest.BundleDic2 = new Dictionary<string, PackageBundle>(_packageBundleCount);
Manifest.BundleDic3 = new Dictionary<string, PackageBundle>(_packageBundleCount);
_progressTotalValue = _packageBundleCount;
_steps = ESteps.DeserializeBundleList;
}
@@ -212,8 +213,8 @@ namespace YooAsset
Manifest.BundleDic2.Add(packageBundle.FileName, packageBundle);
// 注意原始文件可能存在相同的CacheGUID
if (Manifest.CacheGUIDs.Contains(packageBundle.CacheGUID) == false)
Manifest.CacheGUIDs.Add(packageBundle.CacheGUID);
if (Manifest.BundleDic3.ContainsKey(packageBundle.CacheGUID) == false)
Manifest.BundleDic3.Add(packageBundle.CacheGUID, packageBundle);
_packageBundleCount--;
Progress = 1f - _packageBundleCount / _progressTotalValue;

View File

@@ -134,7 +134,6 @@ namespace YooAsset
TryLoadCacheManifest,
DownloadManifest,
LoadCacheManifest,
CheckDeserializeManifest,
Done,
}

View File

@@ -75,6 +75,12 @@ namespace YooAsset
[NonSerialized]
public Dictionary<string, PackageBundle> BundleDic2;
/// <summary>
/// 资源包集合提供CacheGUID获取PackageBundle
/// </summary>
[NonSerialized]
public Dictionary<string, PackageBundle> BundleDic3;
/// <summary>
/// 资源映射集合提供AssetPath获取PackageAsset
/// </summary>
@@ -93,12 +99,6 @@ namespace YooAsset
[NonSerialized]
public Dictionary<string, string> AssetPathMapping2;
/// <summary>
/// 该资源清单所有文件的缓存GUID集合
/// </summary>
[NonSerialized]
public HashSet<string> CacheGUIDs = new HashSet<string>();
/// <summary>
/// 尝试映射为资源路径
@@ -189,12 +189,20 @@ namespace YooAsset
return BundleDic2.TryGetValue(fileName, out result);
}
/// <summary>
/// 尝试获取包裹的资源包
/// </summary>
public bool TryGetPackageBundleByCacheGUID(string cacheGUID, out PackageBundle result)
{
return BundleDic3.TryGetValue(cacheGUID, out result);
}
/// <summary>
/// 是否包含资源文件
/// </summary>
public bool IsIncludeBundleFile(string cacheGUID)
{
return CacheGUIDs.Contains(cacheGUID);
return BundleDic3.ContainsKey(cacheGUID);
}
/// <summary>

View File

@@ -314,28 +314,6 @@ namespace YooAsset
return _playModeImpl.PreDownloadContentAsync(packageVersion, timeout);
}
/// <summary>
/// 清理包裹未使用的缓存文件
/// </summary>
public ClearUnusedCacheFilesOperation ClearUnusedCacheFilesAsync()
{
DebugCheckInitialize();
var operation = new ClearUnusedCacheFilesOperation(this, _cacheMgr);
OperationSystem.StartOperation(PackageName, operation);
return operation;
}
/// <summary>
/// 清理包裹本地所有的缓存文件
/// </summary>
public ClearAllCacheFilesOperation ClearAllCacheFilesAsync()
{
DebugCheckInitialize();
var operation = new ClearAllCacheFilesOperation(_cacheMgr);
OperationSystem.StartOperation(PackageName, operation);
return operation;
}
/// <summary>
/// 获取本地包裹的版本信息
/// </summary>
@@ -412,6 +390,37 @@ namespace YooAsset
_persistentMgr.DeleteSandboxPackageFolder();
_cacheMgr.ClearAll();
}
/// <summary>
/// 清理包裹未使用的缓存文件
/// </summary>
public ClearUnusedCacheFilesOperation ClearUnusedCacheFilesAsync()
{
DebugCheckInitialize();
var operation = new ClearUnusedCacheFilesOperation(this, _cacheMgr);
OperationSystem.StartOperation(PackageName, operation);
return operation;
}
/// <summary>
/// 清理包裹本地所有的缓存文件
/// </summary>
public ClearAllCacheFilesOperation ClearAllCacheFilesAsync()
{
DebugCheckInitialize();
var operation = new ClearAllCacheFilesOperation(_cacheMgr);
OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public GetAllCacheFileInfosOperation GetAllCacheFileInfosAsync(string packageVersion)
{
DebugCheckInitialize();
var operation = new GetAllCacheFileInfosOperation(_persistentMgr, _cacheMgr, packageVersion);
OperationSystem.StartOperation(PackageName, operation);
return operation;
}
#endregion
#region