Compare commits

..

No commits in common. "a5b68b28b2f9f8415fbc0085b7b0942ea9e99520" and "79e0cf85f963b1c2173f2cb69b9ef11fbdcb0e4c" have entirely different histories.

5 changed files with 38 additions and 76 deletions

View File

@ -52,7 +52,7 @@ namespace YooAsset.Editor
public string PackageNote; public string PackageNote;
/// <summary> /// <summary>
/// 怀旧版依赖模式 /// 旧版依赖模式
/// 说明兼容YooAssets1.5.x版本 /// 说明兼容YooAssets1.5.x版本
/// </summary> /// </summary>
public bool LegacyDependency = false; public bool LegacyDependency = false;

View File

@ -44,14 +44,14 @@ namespace YooAsset.Editor
manifest.AssetList = CreatePackageAssetList(buildMapContext); manifest.AssetList = CreatePackageAssetList(buildMapContext);
manifest.BundleList = CreatePackageBundleList(buildMapContext); manifest.BundleList = CreatePackageBundleList(buildMapContext);
// 1. 处理资源清单的资源对象 // 处理资源清单的资源对象
ProcessPacakgeAsset(manifest); ProcessPacakgeAsset(manifest);
// 2. 处理资源包的依赖列表 // 处理资源包的依赖列表
if (processBundleDepends) if (processBundleDepends)
ProcessBundleDepends(context, manifest); ProcessBundleDepends(context, manifest);
// 3. 处理资源包的标签集合 // 处理资源包的标签集合
if (processBundleTags) if (processBundleTags)
ProcessBundleTags(manifest); ProcessBundleTags(manifest);
@ -191,19 +191,6 @@ namespace YooAsset.Editor
var assetInfo = packageAsset.TempDataInEditor as BuildAssetInfo; var assetInfo = packageAsset.TempDataInEditor as BuildAssetInfo;
packageAsset.BundleID = GetCachedBundleIndexID(assetInfo.BundleName); packageAsset.BundleID = GetCachedBundleIndexID(assetInfo.BundleName);
} }
#region YOOASSET_LEGACY_DEPENDENCY
if (manifest.LegacyDependency)
{
// 记录资源对象依赖的资源包ID集合
// 注意:依赖关系非引擎构建结果里查询!
foreach (var packageAsset in manifest.AssetList)
{
var mainAssetInfo = packageAsset.TempDataInEditor as BuildAssetInfo;
packageAsset.DependBundleIDs = GetAssetDependBundleIDs(mainAssetInfo);
}
}
#endregion
} }
/// <summary> /// <summary>
@ -225,55 +212,12 @@ namespace YooAsset.Editor
} }
packageBundle.DependIDs = dependIDs.ToArray(); packageBundle.DependIDs = dependIDs.ToArray();
} }
#region YOOASSET_LEGACY_DEPENDENCY
if (manifest.LegacyDependency)
{
foreach (var packageBundle in manifest.BundleList)
{
var dependIDs = packageBundle.DependIDs;
packageBundle.TempDataInEditor = new DependencyQuery(dependIDs);
}
// 记录引用该资源包的资源包ID集合
foreach (var packageBundle in manifest.BundleList)
{
packageBundle.ReferenceBundleIDs = GetBundleReferenceBundleIDs(manifest, packageBundle);
}
}
#endregion
} }
/// <summary> /// <summary>
/// 处理资源包的标签集合 /// 处理资源包的标签集合
/// </summary> /// </summary>
private void ProcessBundleTags(PackageManifest manifest) private void ProcessBundleTags(PackageManifest manifest)
{
foreach (var packageBundle in manifest.BundleList)
{
packageBundle.Tags = Array.Empty<string>();
}
// 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)
@ -291,9 +235,7 @@ namespace YooAsset.Editor
} }
} }
} }
}
// 将缓存的资源标签赋值给资源包
for (int index = 0; index < manifest.BundleList.Count; index++) for (int index = 0; index < manifest.BundleList.Count; index++)
{ {
var packageBundle = manifest.BundleList[index]; var packageBundle = manifest.BundleList[index];
@ -357,6 +299,26 @@ namespace YooAsset.Editor
} }
private void ProcessLegacyDependency(BuildContext context, PackageManifest manifest) private void ProcessLegacyDependency(BuildContext context, PackageManifest manifest)
{ {
foreach (var packageBundle in manifest.BundleList)
{
var dependIDs = packageBundle.DependIDs;
packageBundle.TempDataInEditor = new DependencyQuery(dependIDs);
}
// 记录资源对象依赖的资源包ID集合
// 注意:依赖关系非引擎构建结果里查询!
foreach (var packageAsset in manifest.AssetList)
{
var mainAssetInfo = packageAsset.TempDataInEditor as BuildAssetInfo;
packageAsset.DependBundleIDs = GetAssetDependBundleIDs(mainAssetInfo);
}
// 记录引用该资源包的资源包ID集合
foreach (var packageBundle in manifest.BundleList)
{
packageBundle.ReferenceBundleIDs = GetBundleReferenceBundleIDs(manifest, packageBundle);
}
// 注意:如果是可编程构建管线,需要补充内置资源包 // 注意:如果是可编程构建管线,需要补充内置资源包
// 注意:该步骤依赖前面的操作! // 注意:该步骤依赖前面的操作!
var buildResultContext = context.TryGetContextObject<TaskBuilding_SBP.BuildResultContext>(); var buildResultContext = context.TryGetContextObject<TaskBuilding_SBP.BuildResultContext>();

View File

@ -1,7 +1,7 @@
 
namespace YooAsset namespace YooAsset
{ {
public enum EBuildBundleType internal enum EBuildBundleType
{ {
/// <summary> /// <summary>
/// 未知类型 /// 未知类型

View File

@ -18,7 +18,7 @@ namespace YooAsset
public string FileVersion; public string FileVersion;
/// <summary> /// <summary>
/// 怀旧版依赖模式 /// 旧版依赖模式
/// </summary> /// </summary>
public bool LegacyDependency; public bool LegacyDependency;

View File

@ -26,7 +26,7 @@ MonoBehaviour:
Groups: Groups:
- GroupName: battle - GroupName: battle
GroupDesc: "\u6218\u6597" GroupDesc: "\u6218\u6597"
AssetTags: battle AssetTags:
ActiveRuleName: EnableGroup ActiveRuleName: EnableGroup
Collectors: Collectors:
- CollectPath: Assets/Samples/Space Shooter/GameRes/Effect - CollectPath: Assets/Samples/Space Shooter/GameRes/Effect
@ -92,7 +92,7 @@ MonoBehaviour:
UserData: UserData:
- GroupName: scene - GroupName: scene
GroupDesc: "\u573A\u666F" GroupDesc: "\u573A\u666F"
AssetTags: scene AssetTags:
ActiveRuleName: EnableGroup ActiveRuleName: EnableGroup
Collectors: Collectors:
- CollectPath: Assets/Samples/Space Shooter/GameRes/Scene - CollectPath: Assets/Samples/Space Shooter/GameRes/Scene
@ -113,7 +113,7 @@ MonoBehaviour:
UserData: UserData:
- GroupName: ugui - GroupName: ugui
GroupDesc: "\u9762\u677F" GroupDesc: "\u9762\u677F"
AssetTags: ui AssetTags:
ActiveRuleName: EnableGroup ActiveRuleName: EnableGroup
Collectors: Collectors:
- CollectPath: Assets/Samples/Space Shooter/GameRes/UIPanel - CollectPath: Assets/Samples/Space Shooter/GameRes/UIPanel