扩展BuildPlayerOptions 自定义

This commit is contained in:
JunQiang 2025-07-15 16:06:48 +08:00
parent 2cc9cdddf7
commit c61da9e144

View File

@ -148,7 +148,7 @@ namespace WeChatWASM
return WXExportError.SUCCEED; return WXExportError.SUCCEED;
} }
// 可以调用这个来集成 // 可以调用这个来集成
public static WXExportError DoExport(bool buildWebGL = true) public static WXExportError DoExport(bool buildWebGL = true, BuildPlayerOptions buildPlayerOptions = default)
{ {
LifeCycleEvent.Init(); LifeCycleEvent.Init();
Emit(LifeCycle.beforeExport); Emit(LifeCycle.beforeExport);
@ -183,7 +183,7 @@ namespace WeChatWASM
UnityUtil.DelectDir(Path.Combine(config.ProjectConf.DST, webglDir + "/StreamingAssets")); UnityUtil.DelectDir(Path.Combine(config.ProjectConf.DST, webglDir + "/StreamingAssets"));
} }
if (buildWebGL && Build() != 0) if (buildWebGL && Build(buildPlayerOptions) != 0)
{ {
return WXExportError.BUILD_WEBGL_FAILED; return WXExportError.BUILD_WEBGL_FAILED;
} }
@ -824,7 +824,7 @@ namespace WeChatWASM
UnityEngine.Debug.LogFormat("[Converter] adapt framework done! "); UnityEngine.Debug.LogFormat("[Converter] adapt framework done! ");
} }
private static int Build() private static int Build(BuildPlayerOptions buildPlayerOptions)
{ {
#if PLATFORM_WEIXINMINIGAME #if PLATFORM_WEIXINMINIGAME
PlayerSettings.WeixinMiniGame.emscriptenArgs = string.Empty; PlayerSettings.WeixinMiniGame.emscriptenArgs = string.Empty;
@ -965,8 +965,16 @@ namespace WeChatWASM
} }
var projDir = Path.Combine(config.ProjectConf.DST, webglDir); var projDir = Path.Combine(config.ProjectConf.DST, webglDir);
// BuildPlayerOptions
var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.WeixinMiniGame, option); {
buildPlayerOptions.scenes = GetScenePaths();
buildPlayerOptions.locationPathName = projDir;
buildPlayerOptions.options = option;
buildPlayerOptions.target = BuildTarget.WebGL;
buildPlayerOptions.targetGroup = BuildPipeline.GetBuildTargetGroup(buildPlayerOptions.target);
}
var result = BuildPipeline.BuildPlayer(buildPlayerOptions);
//var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.WeixinMiniGame, option);
if (result.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded) if (result.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
{ {
UnityEngine.Debug.LogFormat("[Builder] BuildPlayer failed. emscriptenArgs:{0}", PlayerSettings.WeixinMiniGame.emscriptenArgs); UnityEngine.Debug.LogFormat("[Builder] BuildPlayer failed. emscriptenArgs:{0}", PlayerSettings.WeixinMiniGame.emscriptenArgs);
@ -984,8 +992,16 @@ namespace WeChatWASM
} }
var projDir = Path.Combine(config.ProjectConf.DST, webglDir); var projDir = Path.Combine(config.ProjectConf.DST, webglDir);
// BuildPlayerOptions
var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.WebGL, option); {
buildPlayerOptions.scenes = GetScenePaths();
buildPlayerOptions.locationPathName = projDir;
buildPlayerOptions.options = option;
buildPlayerOptions.target = BuildTarget.WebGL;
buildPlayerOptions.targetGroup = BuildPipeline.GetBuildTargetGroup(buildPlayerOptions.target);
}
var result = BuildPipeline.BuildPlayer(buildPlayerOptions);
//var result = BuildPipeline.BuildPlayer(GetScenePaths(), projDir, BuildTarget.WebGL, option);
if (result.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded) if (result.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
{ {
UnityEngine.Debug.LogFormat("[Builder] BuildPlayer failed. emscriptenArgs:{0}", PlayerSettings.WebGL.emscriptenArgs); UnityEngine.Debug.LogFormat("[Builder] BuildPlayer failed. emscriptenArgs:{0}", PlayerSettings.WebGL.emscriptenArgs);