下载源代码
注册Github账户并且关联Epic
有时候打开Epic账户网页后点不动里面的按钮,需要架梯子或者更换浏览器。
下载虚幻引擎源代码 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community (epicgames.com)
如果想用git,就直接克隆,不过由于git存储的版本信息较多,.git文件夹也会有好几个G。不需要关注源码更新的话下载zip就好。
配置VS
我这里下载了UE5,对应安装了VS2022。
在VS Installer安装“使用C++的游戏开发”这个组件,
【后面报错可以回来看这步】其中单个组件的最后一个MSVC v143……本来默认是最新版本,但编译会出现“……ShaderCompiler……”的报错,并提示安装更老一点的版本,所以我选了这个版本。
编译源代码
编译会产生约两百G的文件,一定要注意磁盘空间。
打开源代码文件夹,
- 运行
Setup.bat:这样将下载引擎的二进制内容和先决程序,并设置虚幻文件关联。这步也会消耗几十G的流量下载,需要时间比较长。后续检出只需要下载增量部分,速度将会大幅提高。 - 运行
GenerateProjectFiles.bat来为引擎创建项目文件。这时候sln文件就会出现。 - 双击
UE5.sln文件以将项目加载到Visual Studio中。将你的解决方案配置设置为 开发编辑器,将解决方案平台设置为 Win64,然后右键单击 UE 目标并选择 构建。大概需要10-40分钟完成编译(实际上花了2~4小时),具体取决于系统规格。
VS:生成-配置管理-选择Development Editor和x64。
添加工具
microsoft/vc-ue-extensions:用于在 Visual Studio 和 Unreal Engine 之间集成的组件。 (github.com)
据说是可以查看UE在VS中的状态,很少用,待考究。文档中提到要编译插件,要用到MSBuild命令,系统识别不了这个命令,估计要花时间了解和配置,暂放。但是克隆下来之后就可以识别了。
什么是MSbuild 理解UnrealBuildTool - 知乎 (zhihu.com)
编译完成
编译好UE源码后,直接运行VS,会弹出正常的项目管理器。可以新建项目,打开项目。
新建C++项目
运行VS,打开UE的项目管理器,新建C++项目。 用VS打开项目,里面也包括了引擎的源码。
错误集锦
shadercomplier
要查看VS的输出窗口的编译log来看具体问题出现在哪里。我遇到的基本是安装组件的问题,除了上文提到的MSVC版本,还可以同样搜索“单个组件”的Unreal Engine,添加Unreal Engine 安装程序来尝试。
虚拟内存不够
为了给C盘扩容我把虚拟内存关了(为了编译下载了很多东西C盘真的会炸),会导致内存(16G)不够,会提示“等待内存压力减小而几秒延迟执行”之类,等到n个指令排队后VS乃至电脑系统崩溃,会出现吓人的景象。
- 什么是分页文件:Windows 10中的分页文件是什么-百度经验 (baidu.com) 当RAM不足时,开始数据开始传送到分页文件。分页文件(也称为交换文件)是硬盘驱动器上的文件。当您的RAM已满时,Windows会将一些多余的数据移到页面文件中。这样,页面文件就可以用作虚拟内存的一种,从而可以在硬盘驱动器和RAM之间进行一些数据交换。
- 虚拟内存最好设置在物理内存的1.5~3倍区间内。最小1.5,最大3倍。
原理探讨
- 为什么要编译?
- 编译之后多了几百G,为什么?
从源码剖析虚幻引擎编译原理 | Roc Ying (yinpengd.github.io)
UE 项目的编译流程 | 虚幻社区知识库 (ue5wiki.com)
安卓打包
我是按照这个视频来操作的 b站打包教学视频;
文档可能有些偏旧,细节可以回来阅读一下。安卓项目设置 | 虚幻引擎 4.27 文档 | Epic Developer Community | Epic Developer Community (epicgames.com)
安卓环境配置
- Java 环境。cmd
java -version看看之前是否安装过,在命令行搜索where java获得安装路径。我这里安装的是Java 17. Android Studio,开发app的软件;- 在AS里面,有个
SDKManager,根据视频操作添加所需的SDK/NDK。
⚠注意⚠AS和SDK最好安装在
默认路径上,否则UE识别不了【大坑!】
这个目录的文件会告诉UE如何找到AS和SDK。
- 在UE项目设置-平台-AndroidSDK设置路径。
- UE项目的其它设置(跟视频走)。
- 在UE的平台-打包项目,可以查看是否配置完成。我遇到的主要问题是,即使填好了几个路径,UE仍然无法识别。这是因为上文提到的bat文件会查找AS和SDK的位置,而且只会在默认路径上查找。Android packaging problem: The SDK for Android is not installed properly. - Platform & Builds / Mobile - Epic Developer Community Forums (unrealengine.com)
为了让它识别到,要么更改环境变量,要么建立软链接【下文有解决方案】。
不能安装在默认路径的情况
- AS若不安装在默认路径:UE会提示Android Studio is not installed.
STUDIO_PATH="$HOME/android-studio"
if [ ! -d "$STUDIO_PATH" ]; then
echo "Android Studio not installed, please download Android Studio 3.5.3 from https://developer.android.com/studio"
echo "Please download, extract and move to $HOME/android-studio"
${PAUSE}
exit 1
fi
原因是sh文件写死了AS安装路径,我尝试直接把路径替换成我自己的,没有效果。Windows不知道怎么建立软连接,遂放弃,卸载AS再重新安装到默认路径。
- SDK没有安装在默认路径。把默认路径下的SDK拷贝到新位置等进行一番操作后,还要更改环境变量。
- 处理完位置的问题,需要点击bat文件更新一下,这样UE才能识别。
设置签名
项目发布签名 | 虚幻引擎 4.27 文档 | Epic Developer Community | Epic Developer Community (epicgames.com)
下载Gradle
下载很慢,有时候浏览器甚至无法正常下载【无法下载,需要授权】,换个时间下载或者去镜像源网站下载就好了。
打包
折腾了超级久,打包第一次会出错,配置好再打包一次就成功了。
在手机上运行
- 自己的手机打开开发者模式;
- 连接数据线,点击运行第一个bat文件,就能下载调试了。