mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-30 13:38:46 +00:00
update AssetBundleBuilder
ScriptableBuildParameters类新增BuiltinShadersBundleName和MonoScriptsBundleName字段
This commit is contained in:
@@ -21,7 +21,7 @@ namespace YooAsset.Editor
|
||||
|
||||
// 1. 获取所有收集器收集的资源
|
||||
bool useAssetDependencyDB = buildParameters.UseAssetDependencyDB;
|
||||
var collectResult = AssetBundleCollectorSettingData.Setting.GetPackageAssets(simulateBuild, useAssetDependencyDB, packageName);
|
||||
var collectResult = AssetBundleCollectorSettingData.Setting.BeginCollect(packageName, simulateBuild, useAssetDependencyDB);
|
||||
List<CollectAssetInfo> allCollectAssets = collectResult.CollectAssets;
|
||||
|
||||
// 2. 剔除未被引用的依赖项资源
|
||||
|
||||
@@ -27,7 +27,9 @@ namespace YooAsset.Editor
|
||||
// 开始构建
|
||||
IBundleBuildResults buildResults;
|
||||
var buildParameters = scriptableBuildParameters.GetBundleBuildParameters();
|
||||
var taskList = SBPBuildTasks.Create(buildMapContext.Command.ShadersBundleName, null);
|
||||
string builtinShadersBundleName = scriptableBuildParameters.BuiltinShadersBundleName;
|
||||
string monoScriptsBundleName = scriptableBuildParameters.MonoScriptsBundleName;
|
||||
var taskList = SBPBuildTasks.Create(builtinShadersBundleName, monoScriptsBundleName);
|
||||
ReturnCode exitCode = ContentPipeline.BuildAssetBundles(buildParameters, buildContent, out buildResults, taskList);
|
||||
if (exitCode < 0)
|
||||
{
|
||||
@@ -35,13 +37,17 @@ namespace YooAsset.Editor
|
||||
throw new Exception(message);
|
||||
}
|
||||
|
||||
// 创建着色器信息
|
||||
// 说明:解决因为着色器资源包导致验证失败。
|
||||
// 说明:解决因为特殊资源包导致验证失败。
|
||||
// 例如:当项目里没有着色器,如果有依赖内置着色器就会验证失败。
|
||||
string shadersBundleName = buildMapContext.Command.ShadersBundleName;
|
||||
if (buildResults.BundleInfos.ContainsKey(shadersBundleName))
|
||||
if (string.IsNullOrEmpty(builtinShadersBundleName) == false)
|
||||
{
|
||||
buildMapContext.CreateShadersBundleInfo(shadersBundleName);
|
||||
if (buildResults.BundleInfos.ContainsKey(builtinShadersBundleName))
|
||||
buildMapContext.CreateEmptyBundleInfo(builtinShadersBundleName);
|
||||
}
|
||||
if (string.IsNullOrEmpty(monoScriptsBundleName) == false)
|
||||
{
|
||||
if (buildResults.BundleInfos.ContainsKey(monoScriptsBundleName))
|
||||
buildMapContext.CreateEmptyBundleInfo(monoScriptsBundleName);
|
||||
}
|
||||
|
||||
BuildLogger.Log("UnityEngine build success!");
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace UnityEditor.Build.Pipeline.Tasks
|
||||
{
|
||||
public static class SBPBuildTasks
|
||||
{
|
||||
public static IList<IBuildTask> Create(string builtInShaderBundleName, string unityMonoScriptsBundleName)
|
||||
public static IList<IBuildTask> Create(string builtInShaderBundleName, string monoScriptsBundleName)
|
||||
{
|
||||
var buildTasks = new List<IBuildTask>();
|
||||
|
||||
@@ -30,8 +30,8 @@ namespace UnityEditor.Build.Pipeline.Tasks
|
||||
buildTasks.Add(new StripUnusedSpriteSources());
|
||||
if (string.IsNullOrEmpty(builtInShaderBundleName) == false)
|
||||
buildTasks.Add(new CreateBuiltInShadersBundle(builtInShaderBundleName));
|
||||
if (string.IsNullOrEmpty(unityMonoScriptsBundleName) == false)
|
||||
buildTasks.Add(new CreateMonoScriptBundle(unityMonoScriptsBundleName));
|
||||
if (string.IsNullOrEmpty(monoScriptsBundleName) == false)
|
||||
buildTasks.Add(new CreateMonoScriptBundle(monoScriptsBundleName));
|
||||
buildTasks.Add(new PostDependencyCallback());
|
||||
|
||||
// Packing
|
||||
|
||||
@@ -41,6 +41,17 @@ namespace YooAsset.Editor
|
||||
public int CacheServerPort;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 内置着色器资源包名称
|
||||
/// </summary>
|
||||
public string BuiltinShadersBundleName;
|
||||
|
||||
/// <summary>
|
||||
/// Mono脚本资源包名称
|
||||
/// </summary>
|
||||
public string MonoScriptsBundleName;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取可编程构建管线的构建参数
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user