update asset bundle builder

pull/497/head
何冠峰 2025-02-20 11:27:44 +08:00
parent bd285faf37
commit a5b68b28b2
1 changed files with 29 additions and 42 deletions

View File

@ -254,7 +254,26 @@ namespace YooAsset.Editor
packageBundle.Tags = Array.Empty<string>(); packageBundle.Tags = Array.Empty<string>();
} }
if (manifest.LegacyDependency == false) // YOOASSET_LEGACY_DEPENDENCY
if (manifest.LegacyDependency)
{
// 将主资源的标签信息传染给其依赖的资源包集合
foreach (var packageAsset in manifest.AssetList)
{
var assetTags = packageAsset.AssetTags;
int bundleID = packageAsset.BundleID;
CacheBundleTags(bundleID, assetTags);
if (packageAsset.DependBundleIDs != null)
{
foreach (var dependBundleID in packageAsset.DependBundleIDs)
{
CacheBundleTags(dependBundleID, assetTags);
}
}
}
}
else
{ {
// 将主资源的标签信息传染给其依赖的资源包集合 // 将主资源的标签信息传染给其依赖的资源包集合
foreach (var packageAsset in manifest.AssetList) foreach (var packageAsset in manifest.AssetList)
@ -272,55 +291,23 @@ namespace YooAsset.Editor
} }
} }
} }
for (int index = 0; index < manifest.BundleList.Count; index++)
{
var packageBundle = manifest.BundleList[index];
if (_cacheBundleTags.TryGetValue(index, out var value))
{
packageBundle.Tags = value.ToArray();
}
else
{
// 注意SBP构建管线会自动剔除一些冗余资源的引用关系导致游离资源包没有被任何主资源包引用。
string warning = BuildLogger.GetErrorMessage(ErrorCode.FoundStrayBundle, $"Found stray bundle ! Bundle ID : {index} Bundle name : {packageBundle.BundleName}");
BuildLogger.Warning(warning);
}
}
} }
#region YOOASSET_LEGACY_DEPENDENCY // 将缓存的资源标签赋值给资源包
if (manifest.LegacyDependency) for (int index = 0; index < manifest.BundleList.Count; index++)
{ {
// 将主资源的标签信息传染给其依赖的资源包集合 var packageBundle = manifest.BundleList[index];
foreach (var packageAsset in manifest.AssetList) if (_cacheBundleTags.TryGetValue(index, out var value))
{ {
var assetTags = packageAsset.AssetTags; packageBundle.Tags = value.ToArray();
int bundleID = packageAsset.BundleID;
CacheBundleTags(bundleID, assetTags);
foreach (var dependBundleID in packageAsset.DependBundleIDs)
{
CacheBundleTags(dependBundleID, assetTags);
}
} }
else
for (int index = 0; index < manifest.BundleList.Count; index++)
{ {
var packageBundle = manifest.BundleList[index]; // 注意SBP构建管线会自动剔除一些冗余资源的引用关系导致游离资源包没有被任何主资源包引用。
if (_cacheBundleTags.TryGetValue(index, out var value)) string warning = BuildLogger.GetErrorMessage(ErrorCode.FoundStrayBundle, $"Found stray bundle ! Bundle ID : {index} Bundle name : {packageBundle.BundleName}");
{ BuildLogger.Warning(warning);
packageBundle.Tags = value.ToArray();
}
else
{
// 注意SBP构建管线会自动剔除一些冗余资源的引用关系导致游离资源包没有被任何主资源包引用。
string warning = BuildLogger.GetErrorMessage(ErrorCode.FoundStrayBundle, $"Found stray bundle ! Bundle ID : {index} Bundle name : {packageBundle.BundleName}");
BuildLogger.Warning(warning);
}
} }
} }
#endregion
} }
private void CacheBundleTags(int bundleID, string[] assetTags) private void CacheBundleTags(int bundleID, string[] assetTags)
{ {