pull/464/head
何冠峰 2025-02-08 11:45:06 +08:00
parent 94ee2ba5c1
commit f72814a51b
2 changed files with 33 additions and 15 deletions

View File

@ -58,7 +58,7 @@ namespace YooAsset.Editor
/// <summary> /// <summary>
/// 使用资源依赖缓存数据库 /// 使用资源依赖缓存数据库
/// 说明:开启此项可以极大提高资源收集速度 /// 说明:开启此项可以极大提高资源收集速度
/// </summary> /// </summary>
public bool UseAssetDependencyDB = false; public bool UseAssetDependencyDB = false;
@ -67,6 +67,12 @@ namespace YooAsset.Editor
/// </summary> /// </summary>
public bool EnableSharePackRule = false; public bool EnableSharePackRule = false;
/// <summary>
/// 对单独引用的共享资源进行独立打包
/// 说明:关闭该选项单独引用的共享资源将会构建到引用它的资源包内!
/// </summary>
public bool SingleReferencedPackAlone = false;
/// <summary> /// <summary>
/// 验证构建结果 /// 验证构建结果
/// </summary> /// </summary>

View File

@ -109,15 +109,10 @@ namespace YooAsset.Editor
{ {
if (buildAssetInfo.HasBundleName() == false) if (buildAssetInfo.HasBundleName() == false)
{ {
PackRuleResult packRuleResult = GetShareBundleName(buildAssetInfo); ProcessingPackShareBundle(buildParameters, collectResult.Command, buildAssetInfo);
if (packRuleResult.IsValid())
{
string shareBundleName = packRuleResult.GetShareBundleName(collectResult.Command.PackageName, collectResult.Command.UniqueBundleName);
buildAssetInfo.SetBundleName(shareBundleName);
}
} }
} }
PostProcessPackShareBundle(); PostProcessPackShareBundle(buildParameters, collectResult.Command, allBuildAssetInfos);
} }
// 8. 记录关键信息 // 8. 记录关键信息
@ -209,21 +204,38 @@ namespace YooAsset.Editor
} }
/// <summary> /// <summary>
/// 共享资源打包后置处理 /// 共享资源打包机制
/// </summary> /// </summary>
protected virtual void PostProcessPackShareBundle() protected virtual void ProcessingPackShareBundle(BuildParameters buildParameters, CollectCommand command, BuildAssetInfo buildAssetInfo)
{ {
} PackRuleResult packRuleResult = GetShareBundleName(buildAssetInfo);
if (packRuleResult.IsValid() == false)
return;
/// <summary> // 处理单个引用的共享资源
/// 获取共享资源包名称 if (buildAssetInfo.GetReferenceBundleCount() <= 1)
/// </summary> {
protected virtual PackRuleResult GetShareBundleName(BuildAssetInfo buildAssetInfo) if (buildParameters.SingleReferencedPackAlone == false)
return;
}
// 设置共享资源包名
string shareBundleName = packRuleResult.GetShareBundleName(command.PackageName, command.UniqueBundleName);
buildAssetInfo.SetBundleName(shareBundleName);
}
private PackRuleResult GetShareBundleName(BuildAssetInfo buildAssetInfo)
{ {
string bundleName = Path.GetDirectoryName(buildAssetInfo.AssetInfo.AssetPath); string bundleName = Path.GetDirectoryName(buildAssetInfo.AssetInfo.AssetPath);
PackRuleResult result = new PackRuleResult(bundleName, DefaultPackRule.AssetBundleFileExtension); PackRuleResult result = new PackRuleResult(bundleName, DefaultPackRule.AssetBundleFileExtension);
return result; return result;
} }
/// <summary>
/// 共享资源打包后置处理
/// </summary>
protected virtual void PostProcessPackShareBundle(BuildParameters buildParameters, CollectCommand command, Dictionary<string, BuildAssetInfo> allBuildAssetInfos)
{
}
#endregion #endregion
} }
} }