1.配置build.bat文件
注意要有output文件夹,没有要新建
@echo off
echo =======================================================
echo 说明:本示例示范从命令行调用Unity自动化构建。
echo C#源码参考BuildFromCLI.cs
echo.
echo 注意1:修改本文件的相关路径:
echo UNITY_PATH:unity.exe的完整路径
echo PROJECT_PATH:工程根目录的完整路径
echo LOG_PATH:构建日志完整路径
echo 注意2:执行请先关闭Unity
echo =======================================================
set UNITY_PATH="D:\Program Files\Unity2017.4.34f1\Editor\Unity.exe"
set PROJECT_PATH="E:\UnityTest\LuaProject\xlua 2.15"
set LOG_PATH="E:\UnityTest\LuaProject\xlua 2.15\output\log.txt"
echo start...
rem 确保日志目录存在
for %%a in (%LOG_PATH%) do (
set log_root=%%~dpa
)
if not exist %log_root% mkdir %log_root%
%UNITY_PATH% -batchmode -quit -projectPath %PROJECT_PATH% -logFile %LOG_PATH% -executeMethod XLuaTest.BuildFromCLI.Build
echo done.
pause
2.C# BuildFromCLI
这个文件要放在Editor下面
using System;
using UnityEditor;
using UnityEngine;
using CSObjectWrapEditor;
using XLua;
namespace XLuaTest
{
public static class BuildFromCLI
{
/// <summary>
/// 此方法通过Unity菜单调用。
/// </summary>
[MenuItem("XLua/Examples/13_BuildFromCLI")]
public static void BuildFromUnityMenu()
{
var outputDir = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length) + "/output";
var packageName = "xLuaGame.exe";
build(outputDir, packageName);
}
/// <summary>
/// 此方法通过命令行调用。
/// </summary>
public static void Build()
{
var outputDir = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length) + "/output";
var packageName = "xLuaGame.exe";
build(outputDir, packageName);
}
private static void build(string outputDir, string packageName)
{
Debug.Log("构建开始:输出目录 " + outputDir);
DelegateBridge.Gen_Flag = true;
Generator.ClearAll();
Generator.GenAll();
var levels = new string[0];
var locationPathName = string.Format("{0}/{1}", outputDir, packageName);
var target = BuildTarget.StandaloneWindows64;
var options = BuildOptions.None;
BuildPipeline.BuildPlayer(levels, locationPathName, target, options);
Debug.Log("构建完成");
}
}
}
3.打包测试
打包成功