每次 Unity 项目构建,都需要手动打开 Unity Editor,配置 Build Settings,然后等待漫长的构建过程。尤其是在多人协作的大型项目中,这种手动构建的方式效率低下,容易出错,且难以保证每次构建的一致性。本文将详细介绍如何在 Windows 10 环境下,使用 Jenkins 搭建 Unity 项目的持续集成/持续部署 (CI/CD) 流程,实现自动化构建和部署。
Jenkins 安装及配置
安装 Jenkins
下载 Jenkins WAR 包:前往 Jenkins 官网下载最新稳定版的 Jenkins WAR 包。这里我们假设下载的 war 包名为 jenkins.war。
运行 Jenkins:打开命令行,进入 jenkins.war 所在的目录,执行以下命令启动 Jenkins:
java -jar jenkins.war --httpPort=8080上述命令会启动 Jenkins,并监听 8080 端口。如果 8080 端口被占用,可以使用
--httpPort参数指定其他端口。
访问 Jenkins:在浏览器中输入
http://localhost:8080访问 Jenkins。首次访问需要输入初始密码,密码位于jenkins_home目录下的secrets/initialAdminPassword文件中。安装推荐插件:根据 Jenkins 的提示,安装推荐的插件。这些插件通常包含构建、测试、部署等常用功能。
配置 Jenkins
安装必要插件:除了推荐插件外,还需要安装以下插件:

- Unity3d Plugin:用于支持 Unity 项目的构建。
- Git Plugin:用于从 Git 仓库拉取代码。
- Publish Over SSH:用于将构建产物部署到远程服务器。
在 Jenkins 的 "Manage Jenkins" -> "Manage Plugins" 中搜索并安装这些插件。
配置 Unity3d Plugin:在 "Manage Jenkins" -> "Global Tool Configuration" 中配置 Unity3d Plugin。需要指定 Unity Editor 的安装路径。例如:
- Name: Unity
- Unity Installation:
C:\Program Files\Unity\Hub\Editor\2021.3.2f1\Editor\Unity.exe(请根据实际安装路径修改)
配置 Publish Over SSH:在 "Manage Jenkins" -> "Configure System" 中配置 Publish Over SSH。需要添加 SSH Server,并指定 Hostname、Username 和 Password 或 SSH Key。

Unity 项目构建任务配置
新建 Item:在 Jenkins 首页点击 "New Item",选择 "Freestyle project",输入项目名称,点击 "OK"。
配置源码管理:在 "Source Code Management" 中选择 "Git",输入 Git 仓库的 URL 和 Credentials。Credentials 需要提前在 Jenkins 中配置。
配置 Build Steps:在 "Build Steps" 中添加 "Execute Unity3d" 步骤。

- Unity Version: 选择之前配置的 Unity 版本 (Unity)
- Working Directory: 指定 Unity 项目的根目录
- Build Target: 选择构建目标平台,例如
StandaloneWindows64 - Additional Options: 输入构建参数,例如
-batchmode -quit -logFile build.log -buildTarget StandaloneWindows64 -executeMethod BuildScript.Build
注意:
-batchmode参数表示以命令行模式运行 Unity Editor,-quit参数表示构建完成后退出 Unity Editor,-logFile参数指定日志文件,-executeMethod参数指定执行的构建脚本。配置构建后操作:在 "Post-build Actions" 中添加 "Publish Over SSH" 步骤。
- Name: 选择之前配置的 SSH Server
- Source files: 指定要部署的构建产物,例如
build/* - Remote directory: 指定远程服务器的部署目录
- Exec command: 指定在远程服务器上执行的命令,例如重启 Nginx 等,以应用新的构建产物。可以配合宝塔面板使用,简化服务器管理。
构建脚本 (BuildScript.cs)
需要在 Unity 项目中创建一个名为 BuildScript.cs 的脚本,用于执行构建操作。以下是一个示例:
using UnityEditor;
using UnityEngine;
public class BuildScript
{
public static void Build()
{
string[] scenes = { "Assets/Scenes/SampleScene.unity" }; // 指定场景
string buildPath = "build/MyGame.exe"; // 指定构建路径
BuildPipeline.BuildPlayer(scenes, buildPath, BuildTarget.StandaloneWindows64, BuildOptions.None);
Debug.Log("Build complete: " + buildPath);
}
}
重要: 务必将 BuildScript.cs 放置在 Editor 文件夹下,以便 Unity Editor 能够识别并执行该脚本。
实战避坑经验
- Unity License:确保 Unity Editor 已激活 License。可以使用 Unity 的 Command Line Activation 工具来激活 License。如果服务器没有图形界面,需要使用 Unity 的 Offline Activation 功能。
- Git LFS:如果 Unity 项目使用了 Git LFS 来管理大型资源文件,需要在 Jenkins 中安装 Git LFS Plugin,并确保 Git LFS 已正确配置。
- 构建缓存:启用 Unity 的构建缓存可以显著提升构建速度。可以在 Unity Editor 的 "Editor Settings" 中启用构建缓存。
- 权限问题:确保 Jenkins 用户有权访问 Unity Editor 的安装目录和 Unity 项目的根目录。
- 防火墙:如果服务器有防火墙,需要开放 Jenkins 监听的端口 (例如 8080) 和 SSH 端口 (22 或自定义端口)。
- 稳定性:初期可以考虑使用虚拟机测试,确保整套流程的稳定性,再迁移到生产环境。
- 构建失败排查:仔细查看 Jenkins 的构建日志,定位构建失败的原因。常见的错误包括缺少依赖、脚本错误、资源文件丢失等。
总结
本文详细介绍了如何在 Windows 10 环境下使用 Jenkins 搭建 Unity 项目的 CI/CD 流程。通过自动化构建和部署,可以有效提高开发效率,减少人为错误,并保证每次构建的一致性。希望本文能够帮助你更好地管理 Unity 项目。
冠军资讯
木木不是木