com.alicizax.unity.editor.e.../Editor/Build/BuildCLI/AppBuildHelper.cs
2025-03-20 10:44:52 +08:00

62 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AlicizaX.Editor;
using AlicizaX.Runtime;
using UnityEditor;
using UnityEngine;
public static class AppBuildHelper
{
private const string _entryScene = "Assets/Scenes/Main.unity";
public static void BuildApplication(AppBuildParameter appBuildParameter)
{
if (!Directory.Exists(appBuildParameter.outPutPath))
{
Directory.CreateDirectory(appBuildParameter.outPutPath);
}
Debug.Log("Starting build application");
BuilderGenerate.GeneratAppBuilderSetting(appBuildParameter.language, appBuildParameter.developBuild, appBuildParameter.resMode);
Debug.Log("Generate AppBuilderSetting.bytes");
BuilderGenerate.GenerateAssemblyLoadData();
try
{
var options = new BuildPlayerOptions
{
scenes = new[] { _entryScene },
locationPathName = Path.Combine(appBuildParameter.outPutPath, appBuildParameter.fileName),
target = appBuildParameter.buildTarget,
options = appBuildParameter.developBuild ? BuildOptions.Development : BuildOptions.None
};
var report = BuildPipeline.BuildPlayer(options);
HandleBuildReport(report);
}
catch (Exception e)
{
Debug.Log($"构建过程中发生异常: {e.Message}");
}
}
private static void HandleBuildReport(UnityEditor.Build.Reporting.BuildReport report)
{
if (report.summary.result == UnityEditor.Build.Reporting.BuildResult.Succeeded)
{
Debug.Log($"整包构建完成:${report.summary.outputPath}");
}
else
{
Debug.Log($"错误信息: {report.SummarizeErrors()}");
}
}
}