1. 项目概述:为什么需要离线安装Unity 2020.3 LTS?
如果你是一名游戏开发者,或者你的团队身处网络环境受限的研发中心、保密项目组,又或者你只是想为多台开发机快速部署一个稳定、统一的开发环境,那么“离线安装Unity”这个需求,你一定不陌生。尤其是Unity 2020.3 LTS(长期支持版),作为众多成熟项目和新项目立项的“定海神针”,其稳定性和广泛的插件生态支持,让它至今仍是许多团队的首选。然而,官方默认的在线安装方式,动辄几个G的下载量,加上网络波动、下载失败、Hub服务器连接不畅等问题,足以让一个简单的安装过程变成一场耗时半天的“拉锯战”。
更棘手的是,Unity Hub虽然提供了便捷的版本管理,但在纯离线环境下,它的“关联”和“识别”功能常常失灵。你可能遇到过:明明已经把离线包拷贝到了目标机器,Hub却死活找不到;或者安装后,Hub里显示的版本是“未激活”或“损坏”状态。这些问题背后,往往是对Unity离线安装机制和Hub工作逻辑的不熟悉。
今天,我就结合自己多次在无网、内网环境下部署Unity 2020.3 LTS的经验,为你拆解一套从资源准备、离线安装到与Hub完美关联的完整流程。我会分享官方文档里不会写的“避坑点”,比如如何正确获取完整的资源包、安装脚本执行时的权限陷阱、以及让Hub“认领”离线安装版本的关键配置。无论你是为团队搭建统一的开发环境,还是为自己的备用电脑做准备,这篇攻略都能让你避开我踩过的那些坑,高效、稳定地完成部署。
2. 核心思路与准备工作:理解离线安装的“两步走”策略
Unity的离线安装,本质上是一个“先在线,后离线”的搬运过程。官方并没有提供一个可以直接下载的、完整的离线安装ISO镜像。它的核心流程分为两步,理解这两步是成功的关键。
2.1 官方流程解析:Download Assistant的角色
根据官方手册,离线部署必须依赖一个叫Unity Download Assistant的工具。这个工具本身是一个很小的在线安装器,它的核心作用有两个:
- 充当“采购员”和“打包员”:在一台有网络的机器上,它根据你的选择(版本、目标平台模块等),从Unity服务器下载所有必要的安装文件。
- 生成“部署脚本”:在下载文件的同时,它会生成一个名为
install.sh(macOS/Linux)或install.bat(Windows)的脚本文件,以及一个包含所有下载文件的文件夹。这个脚本就是后续在离线机器上执行安装的“钥匙”。
所以,整个流程可以比喻为:你需要先派一个“采购员”(Download Assistant)去市场(Unity服务器)把菜(安装文件)买回来,并写好一份“烹饪指南”(安装脚本)。然后,你把“菜”和“指南”一起带到没有市场的厨房(离线电脑),按照“指南”操作就能做出同样的菜(安装Unity)。
2.2 我们的准备工作清单
在开始“采购”之前,我们需要做好以下准备,确保过程顺畅:
一台有稳定互联网连接的“在线机”:
- 系统要求:Windows或macOS均可,建议与你的目标“离线机”系统一致,避免架构兼容问题。
- 磁盘空间:至少预留20GB以上的可用空间。Unity 2020.3 LTS编辑器本体加上常用的iOS、Android、WebGL等构建模块,体积非常庞大。
- 权限:确保你有权限在“在线机”上安装软件和创建文件夹。
目标“离线机”:
- 确保有足够的磁盘空间安装Unity(通常需要15GB以上)。
- 如果是Windows系统,务必以管理员身份运行后续的安装脚本。macOS/Linux则需要使用
sudo权限。
一个大容量的移动存储设备:用于将“采购”好的文件包从“在线机”传输到“离线机”。一个高速的USB 3.0移动硬盘是最佳选择。
明确你要安装的组件:在“采购”阶段就要想好。对于Unity 2020.3 LTS,我强烈建议至少包含:
- Unity Editor:编辑器本体,必选。
- 目标平台模块:根据你的项目需要选择,如Microsoft Visual Studio Community(Windows平台代码编辑)、Android Build Support、iOS Build Support、WebGL Build Support等。
- 文档和示例:对于离线环境,本地文档非常有用,但会额外增加几个G的体积,请按需选择。
重要提示:官方流程中有一个极易出错的点。Download Assistant在下载文件时,会要求你指定一个“存储离线安装文件”的位置。千万不能接受默认的临时位置或使用桌面等路径!必须手动指定一个你专门创建的、路径中没有中文和特殊空格的文件夹(例如
D:\UnityOfflinePackages\2020.3.48f1)。否则,下载的文件可能不完整,或者后续被系统清理掉,导致离线安装失败。
3. 实战第一步:在“在线机”上获取离线安装包
现在,我们开始扮演“采购员”。这一步的目标是得到一个完整的文件夹,里面包含所有安装文件和那个至关重要的安装脚本。
3.1 下载并运行Unity Download Assistant
- 访问Unity下载存档页:在“在线机”的浏览器中,打开Unity官方版本存档页面。你可以直接搜索“Unity download archive”找到它。找到Unity 2020.3 LTS的具体版本(例如 2020.3.48f1),点击其下方的“Unity Hub”下载选项旁边的下拉箭头,选择Download Assistant (Win)或Download Assistant (Mac)。
- 运行Download Assistant:下载完成后,运行这个安装器。在初始的欢迎和许可协议页面点击“Next”或“Agree”。
- 选择安装组件:这是关键步骤。在组件选择页面,勾选你需要的所有模块。请务必仔细核对,因为一旦开始下载,再修改选择就需要重新下载。
- 指定离线文件存储路径(避坑关键点):
- 在安装过程中,安装器会询问你是否要“下载到其他位置”或有一个“高级”选项。在Windows上,通常会有一个“Download to:”的路径选择框;在macOS上,需要在“Select a Destination”面板选择“Advanced”,然后会出现自定义路径选项。
- 点击“Browse”或更改按钮,手动导航到你事先准备好的文件夹(例如
D:\UnityOfflinePackages\2020.3.48f1)。绝对不要使用它默认显示的路径!
- 开始下载与安装:确认路径后,继续流程。Download Assistant会开始下载你选择的所有组件,并将其安装到“在线机”的默认程序目录(如
C:\Program Files\Unity\Hub\Editor\2020.3.48f1)。同时,它会把所有下载的原始安装包文件(.pkg或.exe等)以及生成的install.bat(或install.sh)脚本,保存到你刚才指定的那个自定义文件夹中。
3.2 验证离线包完整性
下载完成后,不要急着关闭Download Assistant。先到你指定的文件夹(例如D:\UnityOfflinePackages\2020.3.48f1)中检查以下内容:
- 必须存在
install.bat(Windows) 或install.sh(macOS):用记事本或文本编辑器打开它,你应该能看到一系列的命令,主要是解压和运行各个子安装包。 - 存在大量子安装包文件:你会看到很多以组件命名的文件,如
UnitySetup64.exe、UnitySetup-Android-Support-for-Editor-2020.3.48f1.exe等。文件数量和你选择的组件数对应。 - 检查文件夹大小:整个文件夹的大小应该非常可观(通常超过10GB)。如果文件夹很小(只有几MB或几百MB),说明你错误地接受了默认路径,下载的文件可能被放在了临时目录,并且没有完整复制过来。此时需要清理文件夹,重新运行Download Assistant并正确指定路径。
实操心得:我习惯在下载完成后,将整个离线包文件夹压缩成一个
.7z或.zip文件。这样做有两个好处:一是便于用校验和(如MD5)确保文件在传输过程中未损坏;二是在需要给多台离线机安装时,解压一次即可,避免重复拷贝大量小文件,速度更快,也更不容易出错。
4. 实战第二步:在“离线机”上执行安装
将存储了离线包的移动硬盘连接到你的“离线机”,并将整个文件夹拷贝到离线机的一个本地目录,例如C:\UnityOfflineInstall。
4.1 Windows系统安装步骤
- 以管理员身份运行命令行:在开始菜单搜索“cmd”,右键点击“命令提示符”,选择“以管理员身份运行”。这是确保安装脚本有权限向
Program Files等系统目录写入文件的关键。 - 导航到离线包目录:在打开的命令行窗口中,使用
cd命令切换到你的离线包目录。cd C:\UnityOfflineInstall\2020.3.48f1 - 执行安装脚本:直接运行
install.bat。install.bat - 等待安装完成:脚本会自动按顺序调用文件夹内的各个子安装程序。整个过程是全自动的,你可能会看到多个安装窗口依次弹出、运行、关闭。请耐心等待,直到命令行窗口提示安装完成并自动关闭,或者最后显示“Press any key to continue...”。
- 验证安装:安装完成后,你可以直接到默认安装路径
C:\Program Files\Unity\Hub\Editor\2020.3.48f1下查看,应该存在Unity.exe等文件。但是,先不要直接运行它,我们下一步要解决Hub关联问题。
4.2 macOS系统安装步骤
- 打开终端:通过Spotlight搜索“终端”并打开。
- 导航到离线包目录:
(请将路径替换为你的实际路径)cd /Volumes/YourExternalDrive/UnityOfflineInstall/2020.3.48f1 - 赋予脚本执行权限并运行:
chmod +x install.sh sudo ./install.sh - 输入密码:执行
sudo命令后会提示你输入当前管理员账户的密码,输入时屏幕无显示,输完后按回车即可。 - 等待安装完成:与Windows类似,脚本会自动执行。安装完成后,Unity编辑器通常会出现在
/Applications/Unity或/Applications/Unity/Hub/Editor/2020.3.48f1目录下。
4.3 安装过程中的常见问题与排查
- 问题:运行
install.bat或install.sh时报错“找不到文件”或“权限被拒绝”。- 排查:首先确认你所在的命令行路径是否正确,使用
dir(Win) 或ls(macOS) 查看当前目录下是否有install脚本和大量安装包文件。其次,在Windows上务必使用管理员身份的命令行;在macOS上务必使用sudo。
- 排查:首先确认你所在的命令行路径是否正确,使用
- 问题:安装过程中某个组件安装失败。
- 排查:这通常是因为离线包不完整。请回到“在线机”上,检查离线包文件夹大小,并重新运行Download Assistant,确保在指定存储路径时没有出错。一个完整的离线包是其成功安装的唯一保障。
- 问题:安装完成后,在开始菜单或应用程序文件夹里找不到Unity快捷方式。
- 排查:这是正常现象。因为离线安装脚本可能不会创建快捷方式。我们的目标是先让Hub识别它,通过Hub来启动。直接去安装目录(如
C:\Program Files\Unity\Hub\Editor\2020.3.48f1)确认Unity.exe存在即可。
- 排查:这是正常现象。因为离线安装脚本可能不会创建快捷方式。我们的目标是先让Hub识别它,通过Hub来启动。直接去安装目录(如
5. 核心难点攻克:让Unity Hub识别离线安装的版本
这是整个离线安装流程中最容易卡住的一环。Unity Hub默认会扫描它自己管理的编辑器安装路径(通常是C:\Program Files\Unity\Hub\Editor或/Applications/Unity/Hub/Editor)。如果我们严格按照上述离线流程安装,编辑器正好就安装在这个目录下,理论上Hub应该能自动识别。但很多时候,Hub会“装傻”。
5.1 Hub自动识别失败的解决方案
如果打开Hub后,在“已安装”标签页没有看到你刚装好的Unity 2020.3.48f1,可以尝试以下方法:
- 重启Unity Hub:首先尝试完全关闭Hub(包括后台进程),再重新打开。有时候只是刷新问题。
- 手动添加编辑器路径:
- 在Hub中,点击左上角的“设置”(齿轮图标)。
- 找到“安装位置”或类似标签。
- 在“编辑器安装位置”下方,通常会有一个“添加”或“+”按钮。
- 点击后,手动浏览并选择你安装的Unity编辑器的根目录,即包含
Unity.exe(Win) 或Unity.app(macOS) 的文件夹(例如C:\Program Files\Unity\Hub\Editor\2020.3.48f1)。 - 添加后,Hub应该会扫描并识别该版本。
5.2 手动编辑Hub的配置文件(高级方法)
如果上述方法无效,可能是Hub的本地数据库或配置文件没有更新。我们可以尝试手动修改。
- Windows:Hub的配置和版本信息通常存储在
%APPDATA%\UnityHub目录下。你可以尝试在关闭Hub的情况下,删除或重命名这个文件夹(例如改为UnityHub_backup),然后重新启动Hub。Hub会重建配置文件并重新扫描所有可能的位置。注意:这会重置你的Hub设置,如项目列表和偏好设置。 - macOS:配置文件通常在
~/Library/Application Support/UnityHub。同样可以在关闭Hub后尝试移除或重命名。
重要警告:操作前请备份该文件夹。此方法有一定风险,如果对系统不熟悉,建议优先使用“手动添加路径”的方法。
5.3 离线激活许可证
即使Hub识别了编辑器,在离线环境下首次启动时,仍然会要求你激活许可证。你需要提前在有网的机器上完成激活,然后将许可证文件拷贝到离线机。
- 在有网机器上获取许可证文件:
- 在有网的电脑上,用同一个Unity账号登录Hub并安装/激活Unity 2020.3 LTS。
- 许可证文件的位置:
- Windows:
C:\ProgramData\Unity\(此文件夹默认隐藏,需要在文件资源管理器地址栏直接输入路径,或显示隐藏文件)。里面会有以Unity_lic.ulf命名的文件。 - macOS:
~/Library/Application Support/Unity/或/Library/Application Support/Unity/。同样寻找.ulf文件。
- Windows:
- 传输并放置许可证文件:
- 将找到的
Unity_lic.ulf文件拷贝到离线机的相同路径下。 - 在离线机上通过Hub启动Unity编辑器,它应该会自动读取该许可证文件,而不再弹出激活窗口。
- 将找到的
如果拷贝许可证后仍要求激活,可以在离线机的Unity编辑器启动时,选择“手动激活”,然后选择“导入许可证文件”,手动指向你拷贝过来的.ulf文件。
6. 资源包管理与后续维护
成功安装并关联后,你的离线Unity环境就搭建好了。但对于团队协作或长期维护,还有一些经验可以分享。
6.1 创建统一的资源包归档
我建议将完整的离线安装文件夹(包含install.bat/sh和所有子安装包)进行归档管理。为其创建一个清晰的目录结构,例如:
Unity_Offline_Archives/ ├── 2020.3.48f1/ │ ├── Windows/ │ │ ├── install.bat │ │ ├── UnitySetup64.exe │ │ └── ... │ └── macOS/ │ ├── install.sh │ └── Unity.pkg ├── Module_Android_2020.3.48f1.zip (单独模块备份) └── README.txt (记录包含的组件、下载日期、MD5校验码)这样,任何团队成员需要搭建环境时,只需获取对应的版本包,按照固定的步骤操作即可,极大减少了沟通成本和出错概率。
6.2 为离线环境添加额外模块
如果后续需要在离线机上添加新的构建模块(例如之前没装iOS支持,现在需要了),最稳妥的方法依然是回到“在线机”上,使用Download Assistant仅选择你需要新增的模块,并再次指定到同一个离线包存储路径。Download Assistant会只下载新增的模块包。然后将这些新增的包文件拷贝到离线机的对应目录,并手动运行这些新增的.exe或.pkg安装程序。通常不需要再次运行主install.bat脚本。
6.3 常见问题速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 离线安装脚本执行失败,提示文件缺失 | 1. 离线包不完整。 2. 脚本执行路径不对。 | 1. 检查离线包大小,重新在在线机上下载。 2. 在命令行中确认当前目录包含所有安装包。 |
| Unity Hub无法发现已安装的编辑器 | 1. Hub未刷新。 2. 编辑器未安装在Hub默认扫描路径。 3. Hub配置文件异常。 | 1. 重启Hub。 2. 在Hub设置中手动添加编辑器安装路径。 3. (高级)尝试重置Hub配置目录。 |
| 启动Unity时要求激活,无法离线 | 许可证文件缺失或未正确放置。 | 将有网机器上的Unity_lic.ulf文件拷贝到离线机的对应系统目录。 |
| 安装过程中提示“权限不足” | Windows未使用管理员命令行;macOS未使用sudo。 | Windows以管理员身份运行CMD;macOS在命令前加sudo并输入密码。 |
| Download Assistant下载速度极慢或中断 | 网络问题或Unity服务器问题。 | 尝试使用网络代理或更换网络环境;避开高峰时段下载。 |
最后,我想强调的是,离线安装的核心在于“准备”和“验证”。在在线机上的操作务必仔细,确保下载的离线包完整无误;在离线机上的操作则要严格按照步骤,注意权限。一旦你把整个流程跑通一次,并形成规范的资源包归档,后续为任何机器部署相同的开发环境都会变得轻而易举。这套方法不仅适用于2020.3 LTS,也适用于其他任何你需要进行离线部署的Unity版本。