首页 数字经济

Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南

分类:数字经济
字数: (9751)
阅读: (6822)
内容摘要:Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南,

每次 Unity 项目构建,都需要手动打开 Unity Editor,配置 Build Settings,然后等待漫长的构建过程。尤其是在多人协作的大型项目中,这种手动构建的方式效率低下,容易出错,且难以保证每次构建的一致性。本文将详细介绍如何在 Windows 10 环境下,使用 Jenkins 搭建 Unity 项目的持续集成/持续部署 (CI/CD) 流程,实现自动化构建和部署。

Jenkins 安装及配置

安装 Jenkins

  1. 下载 Jenkins WAR 包:前往 Jenkins 官网下载最新稳定版的 Jenkins WAR 包。这里我们假设下载的 war 包名为 jenkins.war。

  2. 运行 Jenkins:打开命令行,进入 jenkins.war 所在的目录,执行以下命令启动 Jenkins:

    java -jar jenkins.war --httpPort=8080
    

    上述命令会启动 Jenkins,并监听 8080 端口。如果 8080 端口被占用,可以使用 --httpPort 参数指定其他端口。

    Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南
  3. 访问 Jenkins:在浏览器中输入 http://localhost:8080 访问 Jenkins。首次访问需要输入初始密码,密码位于 jenkins_home 目录下的 secrets/initialAdminPassword 文件中。

  4. 安装推荐插件:根据 Jenkins 的提示,安装推荐的插件。这些插件通常包含构建、测试、部署等常用功能。

配置 Jenkins

  1. 安装必要插件:除了推荐插件外,还需要安装以下插件:

    Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南
    • Unity3d Plugin:用于支持 Unity 项目的构建。
    • Git Plugin:用于从 Git 仓库拉取代码。
    • Publish Over SSH:用于将构建产物部署到远程服务器。

    在 Jenkins 的 "Manage Jenkins" -> "Manage Plugins" 中搜索并安装这些插件。

  2. 配置 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 (请根据实际安装路径修改)
  3. 配置 Publish Over SSH:在 "Manage Jenkins" -> "Configure System" 中配置 Publish Over SSH。需要添加 SSH Server,并指定 Hostname、Username 和 Password 或 SSH Key。

    Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南

Unity 项目构建任务配置

  1. 新建 Item:在 Jenkins 首页点击 "New Item",选择 "Freestyle project",输入项目名称,点击 "OK"。

  2. 配置源码管理:在 "Source Code Management" 中选择 "Git",输入 Git 仓库的 URL 和 Credentials。Credentials 需要提前在 Jenkins 中配置。

  3. 配置 Build Steps:在 "Build Steps" 中添加 "Execute Unity3d" 步骤。

    Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南
    • 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 参数指定执行的构建脚本。

  4. 配置构建后操作:在 "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 能够识别并执行该脚本。

实战避坑经验

  1. Unity License:确保 Unity Editor 已激活 License。可以使用 Unity 的 Command Line Activation 工具来激活 License。如果服务器没有图形界面,需要使用 Unity 的 Offline Activation 功能。
  2. Git LFS:如果 Unity 项目使用了 Git LFS 来管理大型资源文件,需要在 Jenkins 中安装 Git LFS Plugin,并确保 Git LFS 已正确配置。
  3. 构建缓存:启用 Unity 的构建缓存可以显著提升构建速度。可以在 Unity Editor 的 "Editor Settings" 中启用构建缓存。
  4. 权限问题:确保 Jenkins 用户有权访问 Unity Editor 的安装目录和 Unity 项目的根目录。
  5. 防火墙:如果服务器有防火墙,需要开放 Jenkins 监听的端口 (例如 8080) 和 SSH 端口 (22 或自定义端口)。
  6. 稳定性:初期可以考虑使用虚拟机测试,确保整套流程的稳定性,再迁移到生产环境。
  7. 构建失败排查:仔细查看 Jenkins 的构建日志,定位构建失败的原因。常见的错误包括缺少依赖、脚本错误、资源文件丢失等。

总结

本文详细介绍了如何在 Windows 10 环境下使用 Jenkins 搭建 Unity 项目的 CI/CD 流程。通过自动化构建和部署,可以有效提高开发效率,减少人为错误,并保证每次构建的一致性。希望本文能够帮助你更好地管理 Unity 项目。

Windows 10下Unity项目持续集成:Jenkins一键自动化部署指南

转载请注明出处: 木木不是木

本文的链接地址: http://m.acea2.store/blog/320585.SHTML

本文最后 发布于2026-04-11 12:51:26,已经过了16天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 番茄炒蛋 3 天前
    写的很详细,解决了我的一个大问题,之前一直手动打包,太痛苦了!感谢分享!
  • 豆腐脑 1 天前
    请问一下,如果我的Unity项目使用了Git LFS,Jenkins需要做哪些额外配置吗?
  • 麻辣烫 5 天前
    这个教程很实用,正好需要用到Jenkins来自动化构建Unity项目,省去了不少摸索时间。