Optimized asset system and patch system framework

优化了资源定位不正确导致的错误报告方式。
YooAssets.ProcessOperation()重命名为YooAssets.StartOperation()
YooAssets.GetBundleInfo()已经移除方法。
YooAssets.IsNeedDownloadFromRemote()新增加方法。
This commit is contained in:
hevinci
2022-05-11 16:48:17 +08:00
parent 67eeae31c7
commit 4cad587609
34 changed files with 726 additions and 573 deletions

View File

@@ -151,6 +151,26 @@ namespace YooAsset
return ConvertToUnpackList(downloadList);
}
public static List<BundleInfo> GetUnpackListByAll(PatchManifest appPatchManifest)
{
// 注意:离线运行模式也依赖下面逻辑,所以判断沙盒内文件是否存在不能通过缓存系统去验证。
List<PatchBundle> downloadList = new List<PatchBundle>(1000);
foreach (var patchBundle in appPatchManifest.BundleList)
{
// 如果已经在沙盒内
string filePath = SandboxHelper.MakeCacheFilePath(patchBundle.Hash);
if (System.IO.File.Exists(filePath))
continue;
// 如果不是内置资源
if (patchBundle.IsBuildin == false)
continue;
downloadList.Add(patchBundle);
}
return ConvertToUnpackList(downloadList);
}
private static List<BundleInfo> ConvertToUnpackList(List<PatchBundle> unpackList)
{
List<BundleInfo> result = new List<BundleInfo>(unpackList.Count);
@@ -178,31 +198,13 @@ namespace YooAsset
List<AssetInfo> result = new List<AssetInfo>(100);
foreach (var patchAsset in patchManifest.AssetList)
{
string bundleName = patchManifest.GetBundleName(patchAsset.AssetPath);
if(patchManifest.Bundles.TryGetValue(bundleName, out PatchBundle bundle))
if(patchAsset.HasTag(tags))
{
if(bundle.HasTag(tags))
{
result.Add(new AssetInfo(patchAsset.AssetPath));
}
AssetInfo assetInfo = new AssetInfo(patchAsset);
result.Add(assetInfo);
}
}
return result.ToArray();
}
/// <summary>
/// 获取资源信息列表
/// </summary>
public static AssetInfo[] GetAssetsInfoByBundleName(PatchManifest patchManifest, string bundleName)
{
List<AssetInfo> result = new List<AssetInfo>(100);
foreach (var patchAsset in patchManifest.AssetList)
{
string tempName = patchManifest.GetBundleName(patchAsset.AssetPath);
if (tempName == bundleName)
result.Add(new AssetInfo(patchAsset.AssetPath));
}
return result.ToArray();
}
}
}