作业内容:

  1. 源码编译UE4/5,新建C++工程,进行简单场景编辑和工程设置
  2. 编译并构建安装包,确保能够用来将游戏工程安装到手机正常运行

下面是我下载编译 UE 5.2.1 源码,并打包安卓项目过程记录。

下载并编译源码

参考官网文档获取源码并下载:下载虚幻引擎源代码

简单流程介绍:

  1. 准备GitHub账户和Epic Games账户,然后按照 Github上的虚幻引擎 完成绑定;
  2. 访问 UnrealEngine源码仓库 获取源码。

你可以在分支中找到5.2版本,即为UE5.2.1版。

UE5.2.1

下载和编译过程参考源码仓库中的 README.md 介绍。


总结几个对我来说比较有用的点:

  1. 5.2版本基本稳定,可以直接下载zip压缩包;
  2. 如果使用git,可以选择只获取某一特定分支;
  3. git clone 速度很慢,可以设置git代理,加速下载。

我最初使用 git clone 直接下载,很慢,所以设置了代理(本机Clash端口:127.0.0.1:7890),设置参考:

Github文档:使用 SSH 代理转发
~/.ssh/config:git通过配置SSH代理访问Github

之后觉得下载内容太多,我们只需要一个分支版本的源码即可,所以我使用ssh只克隆了5.2分支:

git clone -b 5.2 --single-branch [email protected]:EpicGames/UnrealEngine.git

参考:如何 Git Clone 指定分支

git clone 获取 UE5.2 源码

可以看到只下载5.2分支也有13.49G,感觉不如下载 UnrealEngine-5.2.zip,500+MB 再解压缩,很快。


然后就是按照 README.md 介绍,先运行Setup.bat,再运行GenerateProjectFiles.bat,最后使用 VS 打开 UE5.sln

比如 Windows 操作系统的编译过程:

Getting up and running on windows

编译完成后,我们也可以找到源码目录中 \UnrealEngine-5.2\Engine\Binaries\Win64\UnrealEditor.exe 执行文件直接打开UE,而不用 VS 运行。

关于编译过程中可能遇到的问题,我遇到的问题都是 VS 安装不到位导致,以下是我的 VS2022 安装内容:

VS2022安装选择

“工作负荷”中勾选的都是自动安装,另外特别选了“单一组件中”的unreal内容(特别是Unreal Engine安装程序):

单一组件选择

然后进行编译就成功了,下图是编译成功后又生成了一下,所以很快,第一次生成两三个小时大概()。

编译成功

README.md 所说,在 VS 中将 UE5 设置为启动项目,按 F5 可以启动调试;或者找到 UnrealEditor.exe, UE,启动!

UE,启动!

关于其他可能的问题(我没遇到,仅供参考):

UE5编译报错:Error MSB3073

安装 Android Studio

为了我们能正确打包安卓项目,需要先下载 Android Studio。

参考官方文档 设置虚幻的Android SDK和NDK,有详细的安装流程。

需要注意的是,对应版本最好严格按照文档要求来,这样少折腾一点,可以一次成功。

按照文档流程基本可以成功,虽然我还是遇到了一些问题:

首先按照文档要求,下载了 Android Studio 4.0,启动时遇到的一些更新或下载之类的弹窗可以取消,下面会专门进行安装。

在 Android SDK 系统设置中,我安装的 Android Studio 自动为我安装了最新的 SDK 34,需要将它取消勾选(会进行卸载),并勾选 SDK 32(会进行安装),点击 Apply。

设置Android SDK

之所以选择 SDK 32 是因为官方文档的 开发要求,如果你是其他版本的UE,需要找到对应的推荐版本(至少编译所需的最低版本)。

然后关于 SDK 工具的下载,一定要勾选 8.0 版本的 Android SDK Command-line Tools,需要将推荐包展开找到 8.0。

设置Android SDK命令行工具

之所以选择 8.0 版,是因为 SetupAndroid.bat 文件中默认即为 8.0 ,这点官方文档也有说。

SetupAndroid.bat

关于上图中这点,我打开 SetupAndroid.bat 文件发现默认设置即可,如果一切按照以上操作来设置,这点不用理会。

然后重启计算机(Windows)后运行了 SetupAndroid.bat 文件,没有看到官网所说的 “接受协议” 这步,但是提示成功即可,再重启便完成了安装。

另外,我在 Android Studio 的欢迎界面收到下图提示:

ANDROID_SDK_HOME

其实应该是不用理会即可,但强迫症去找了一下解决方案:Android Studio 3.1.4 : ANDROID_SDK_HOME is set to the root of your SDK,简言之就是,ANDROID_SDK_HOME 环境变量已被弃用,只需将其删除即可。(但是后来运行UE好像又自动加上了,。

创建C++工程并打包安卓平台

现在可以启动 UE,创建第一个C++项目,官方文档也有介绍:新建项目,你可以在页面左上角切换到你的UE版本对应的文档介绍。为了打包一个安卓项目,以下是我的新建项目设置:

新建项目设置

点击创建后会启动 VS2022,然后运行项目,即可打开虚幻编辑器,点击运行即可在虚幻编辑器内启动当前关卡进行预览:

预览项目运行

我们不用做任何操作,直接进行打包即可:

打包安卓项目

当然你也可以点击上图第一菜单栏中 “打包设置” 看看,官方文档有一些说明:打包项目

最后一切顺利的话,输出日志中会提示 BUILD SUCCESSFUL,这里我没遇到任何严重错误(Error),只有一些警告,大概进行了一个多小时,之后再打包本项目就很快了。

打包成功

现在需要准备安卓手机,进入开发者模式,并打开USB调试选项,用数据线连接到电脑。

不同手机进行开发者模式的方式可能不同,没找到可以自己搜一下,比如我的华为手机:

手机进入开发者模式

然后在我的 “系统与更新” 中出现了 “开发人员选项”,进入打开 “USB调试”(你也可以在这里关闭开发者模式)。

打开USB调试

然后在打包时选择的文件目录里,找到以下文件并双击运行(确保上面准备工作完成):

安卓软件包

一切顺利的话会成功安装到手机上,找到它就可以在手机上运行了。

安装并运行

可以看到还有一个 apk 文件,如果直接传 apk 文件到手机(注意微信传输会添加 .1 后缀,不能直接安装,可以用 QQ 或其他方式传输),可以安装成功,但是会提示 No Google Play Store Key 而无法运行。

No Google Play Store Key

参照群友们的解决方案,我在打包设置中勾选了 “将游戏数据打包到apk中”,如下图:

将游戏数据打包到apk中

可以看到apk安装包变大了:

apk大小比较

这样就能直接使用 apk 文件安装并运行了,也不用设置手机开发者模式。

最后

git

整个过程下来获取源码的时候最浪费时间,git 折腾了挺久的,最后也是使用压缩包先编译了。接下来的过程一切都比较顺利了,严格按照官方文档和开发要求的版本,没遇到什么问题。

如果你遇到了其他问题,下面可能是一些参考:
UE4学习笔记(1):UE源码下载编译+安卓打包
UE源码下载编译+安卓打包配置及部分补充杂症的解决
UE部署到Android以及杂症的解决

后话:我将上文中 git clone 成功获取到的文件夹(UnrealEngine)中的 .git 目录复制了一份到我的压缩包文件夹中(UnrealEngine-5.2,因为已经用解压缩的源码编译成功并做好了本文内容,所以不想将 git 拉取的内容再编译一遍),然后在压缩包文件夹(UnrealEngine-5.2)中用 git pull 验证了是可行的,这样一来我压缩包获取的源码(并完成编译)也可以快速拉取仓库代码的更新(如果5.2还会更新的话)。

复制.git目录

使用 Epic 启动源码编译版本

参考 在Epic Games启动程序中更改安装位置

不是很建议,除非有时间愿意慢慢折腾,我是没弄好,不确定是否可行。。。