
官方文档: https://github.com/CesiumGS/cesium-unreal/blob/main/Documentation/developer-setup-windows.md
以下是我的实现笔记
一、软件环境(windows系统)
1.Git
https://git-scm.com/downloads/win
2.Cmake (3.30.0以上)
https://cmake.org/resources/
3.Visual Studio 2022
https://visualstudio.microsoft.com/zh-hans/downloads/
Under Workloads, check Desktop development with C++
Under Workloads, check Game development with C++
Under Individual components, check .NET Framework 4.8 SDK (or newer)
4.UE(5.2以上)
https://www.unrealengine.com/zh-CN/download
二、步骤
1.运行Git CMD,Clone Cesium-unreal源代码
(1)执行命令
git clone --recurse-submodules https://github.com/CesiumGS/cesium-unreal.git

(2)下载后的文件保存路径
下载后的文件夹为cesium-unreal,在当前执行命令的路径下,比如我这里是:C:\Users\pc\cesium-unreal

2. Cesium-unreal源代码放入UE C++项目里
UE新建一个C++项目(如果不成功,就根据提示完善C++编译环境),.uproject所在的同级目录新建Plugins文件夹,把cesium-unreal文件夹拷到里面。
3. 用CMake GUI进行Configure和Generate
在这个过程中,我主要遇到几个问题,对应的解决方法如下:
3.1 UNREAL_ENGINE_ROOT环境变量没定义
(1)问题截图

(2)解决方法
系统中定义环境变量根据提示设置环境变量后,重启电脑。

3.2 连不上https://github.com/microsoft/vcpkg.git
(1)问题截图

(2)解决方法
操作系统中,把系统区域设置为英语(美国),然后重启电脑,然后在网络好的时候,重新用CMake GUI configure。

3.3 '/.ezvcpkg/2024.11.16'已存在,为非空目录
(1)问题截图

(2)解决方法
关闭CMake GUI,把C:\.ezvcpkg删除,然后重新用CMake GUI configure。

3.4 最后Configure成功(有些Warning不影响), 然后Generate

4. 编译cesium-unreal-extern.sln
4.1方法一(直接生成整个解决方案,此方法作为参考,推荐优先使用“4.2方法二(优先生成ZERO_CHECK)”)
方法一是直接选择整个解决方案,点生成,此过程中遇到各个问题,一一解决后,INSTALL。
在这个过程中,我主要遇到几个问题,对应的解决方法如下:
4.1.1 无法打开包括文件
(1) 问题截图

(2)解决方法
配置项目以使用vcpkg Install里的文件。右键点击有问题的项目,选择“属性”;导航到“配置属性”->“VC++目录”;在“包含目录”字段中,添加vcpkg的头文件路径;确保“库目录”字段也包含了vcpkg的库文件路径。

4.1.2 以下警告被视为错误
(1)问题截图

(2)解决方法
选中出错项目,调出属性,设置将警告视为错误为否

4.1.3 ZERO_CHECK 项目MSB8066错误
(1)问题截图

(2)解决方法
在网络好的时候重新编译下ZERO_CHECK 项目,确保下面的目录中生成generate.stamp文件就好。

4.2方法二(优先生成ZERO_CHECK)
某同学实践,推荐这个方法
(1)如果在项目所在的比如D盘根目录下有.ezvcpkg文件夹,请先删除。
(2)在Cesium Native里单独先生成ZERO_CHECK这个项目,步骤中让它重新克隆ezvcpkg,它会克隆在项目D盘,这样操作就不用单独去添加库目录和包含目录。
(3)然后生成整个解决方案,遇到问题就少,如遇到问题则参考方法一解决。
4.3 编译和安装
编译Release成功后,选中INSTALL项目生成,确保D:\CesiumProjects\Code_V2_11_0\Plugins\cesium-unreal\Source\ThirdParty里有相应的文件。


5. 编译项目.sln
删除红框的文件,选中.uproject,右键Generate Visual Studio project files,这样就更新了项目的.sln文件。打开.sln文件,选中项目,生成就可。


三、编译最后结果
打开.uproject,'CesiumForUnreal' is Incompatible 框跳出,选YES后,UE能正常打开。确认下Cesium for Unreal是在PROJECT下,版本2.11.0,然后就可以开始正常使用Cesium for Unreal。


四、打包exe和运行的问题
1.问题
按照上述步骤从"https://github.com/CesiumGS/cesium-unreal/ " main branch下载的源码,编译成功Cesium for Unreal后,用UE5.3, UE5.4均可以把项目打包成exe,但双击运行后会有下面的Message,关闭后,exe也关闭,无法继续运行。
下图是UE5.3打包后的程序运行Message

下图是UE5.4打包后的程序运行Message

2. 解决方法
解决方法有两种,推荐第(2)种。
(1)解决方法是用Cesium for Unreal 源码编译时提示的UE版本来进行编译打包,这里是UE5.2, 就可以。
之前也出现过类似的问题:网页链接
(2)到https://github.com/CesiumGS/cesium-unreal/releases/, 下载对应UE版本比如 “CesiumForUnreal-54-v2.11.0.zip”,然后解压到Plugins文件夹中,覆盖原有的Cesium for Unreal源代码,然后在这个基础上修改。CesiumForUnreal-54-v2.11.0.zip文件中不包含Cesium Native的代码,但包含Cesium Native的编译结果,Cesium Native修改了的话,重新编译并INSTALL来覆盖Cesium Native的编译结果,即Plugins\CesiumForUnreal\Source\ThirdParty里的文件。
3.原因
从解决方法上,可以分析到大概原因。
(1)该问题的产生与Cesium Native无关,问题在于CesiumForUnreal层级的代码。
(2)CesiumForUnreal中肯定有某块代码是依赖UE的版本的,根据UE的版本应该要变化的,目前我不知道是什么代码,但通过覆盖CesiumForUnreal层级的代码可以获得正确的代码。