最近在使用Teamcity做ET7项目的CI(用到了HybirdCLR),没有搞清楚应该先后调用哪些方法,有没有大佬指点一下。
我现在写了一个方法不包含HybirdCLR,batchmode命令执行后经常卡住。
更新:下面这个流程运作正常了(需要时间验证)。参考了HybridCLR文档。
public static void BuildClient()
{
BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
// 生成热更dll
var g = Resources.Load<GlobalConfig>("GlobalConfig");
g.CodeMode = CodeMode.Client;
BuildAssembliesHelper.BuildModel(CodeOptimization.Release, g);
BuildAssembliesHelper.BuildHotfix(CodeOptimization.Release, g);
// 生成link.xml 依赖热更dll
LinkGeneratorCommand.GenerateLinkXml(target);
// 打包项目
BuildHelper.Build(PlatformType.WebGL, BuildAssetBundleOptions.None, BuildOptions.None, true, false, true);
// 桥接函数生成依赖于AOT dll,必须保证已经build过,生成AOT dll
MethodBridgeGeneratorCommand.GenerateMethodBridge(target);
AOTReferenceGeneratorCommand.GenerateAOTGenericReference(target);
HybridCLREditor.CopyAotDll();
// 打包assetbundle
BuildHelper.Build(PlatformType.WebGL, BuildAssetBundleOptions.None, BuildOptions.None, false, true, true);
}