From a71c46d1c41351f7cdf1f10fd40d5f81ae6575da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Mon, 8 Sep 2025 19:00:55 +0800 Subject: [PATCH] =?UTF-8?q?feat=20:=20=E6=9E=84=E5=BB=BA=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E9=9B=86=E4=BE=9D=E8=B5=96=E8=AE=A1=E7=AE=97=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseTasks/TaskCreateManifest.cs | 29 ++++++++++++------- .../ScriptableBuildParameters.cs | 5 ++++ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/BaseTasks/TaskCreateManifest.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/BaseTasks/TaskCreateManifest.cs index 263f126b..5ea564a8 100644 --- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/BaseTasks/TaskCreateManifest.cs +++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/BaseTasks/TaskCreateManifest.cs @@ -308,25 +308,34 @@ namespace YooAsset.Editor // 注意:如果是可编程构建管线,需要补充内置资源包 // 注意:该步骤依赖前面的操作! var buildResultContext = context.TryGetContextObject(); + if (buildResultContext != null) { - ProcessBuiltinBundleReference(context, manifest, buildResultContext.BuiltinShadersBundleName); - ProcessBuiltinBundleReference(context, manifest, buildResultContext.MonoScriptsBundleName); + ProcessBuiltinBundleReference(manifest, buildResultContext.BuiltinShadersBundleName); + ProcessBuiltinBundleReference(manifest, buildResultContext.MonoScriptsBundleName); - // 注意:检测是否开启图集模式 - // 说明:需要记录主资源对象对图集的依赖关系! - if (EditorSettings.spritePackerMode != SpritePackerMode.Disabled) + var buildParametersContext = context.TryGetContextObject(); + var buildParameters = buildParametersContext.Parameters; + if (buildParameters is ScriptableBuildParameters scriptableBuildParameters) { - var buildMapContext = context.GetContextObject(); - foreach (var spriteAtlasAsset in buildMapContext.SpriteAtlasAssetList) + if (scriptableBuildParameters.TrackSpriteAtlasDependencies) { - string spriteAtlasBundleName = spriteAtlasAsset.BundleName; - ProcessBuiltinBundleReference(context, manifest, spriteAtlasBundleName); + // 注意:检测是否开启图集模式 + // 说明:需要记录主资源对象对图集的依赖关系! + if (EditorSettings.spritePackerMode != SpritePackerMode.Disabled) + { + var buildMapContext = context.GetContextObject(); + foreach (var spriteAtlasAsset in buildMapContext.SpriteAtlasAssetList) + { + string spriteAtlasBundleName = spriteAtlasAsset.BundleName; + ProcessBuiltinBundleReference(manifest, spriteAtlasBundleName); + } + } } } } } - private void ProcessBuiltinBundleReference(BuildContext context, PackageManifest manifest, string builtinBundleName) + private void ProcessBuiltinBundleReference(PackageManifest manifest, string builtinBundleName) { if (string.IsNullOrEmpty(builtinBundleName)) return; diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/ScriptableBuildPipeline/ScriptableBuildParameters.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/ScriptableBuildPipeline/ScriptableBuildParameters.cs index 2f63cd68..e827c644 100644 --- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/ScriptableBuildPipeline/ScriptableBuildParameters.cs +++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/ScriptableBuildPipeline/ScriptableBuildParameters.cs @@ -29,6 +29,11 @@ namespace YooAsset.Editor /// public bool IgnoreTypeTreeChanges = true; + /// + /// 自动建立资源对象对图集的依赖关系 + /// + public bool TrackSpriteAtlasDependencies = false; + /// /// 生成代码防裁剪配置