00:30 准备环境

1、CMake V3.15以上(演示版本:3.26.3)
验证:在CMD 或 GIT中 输入
cmake --version (回车)
显示:cmake version 版本号
CMake suite maintained and supported by Kitware (kitware.com/cmake).
则安装成功(不成功可能需要配置环境变量)
2、NET SDK V6.0以上(演示版本:7.0.302)
验证:在CMD 或 GIT中 输入
dotnet --version (回车)
显示: 版本号
则安装成功
3、VisualStudio (推荐2022(17))
可能需要 附加CMake开发工具(C++桌面开发)
4、Windows启用长文件路径的支持
(不会看这里:https://blog.csdn.net/weixin_46356818/article/details/121029550)
5、nasm
(下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/)
6、Git 、 CMD
02:46 克隆原项目
1、进入 文件需要存放的目录(自行创建)
切换盘符:输入 盘符:

进入目录:输入 cd 目录路径

2、克隆项目
下载 输入:git clone --recurse-submodules https://github.com/CesiumGS/cesium-unity-samples.git
03:49 下载完成

3、进入Package
输入: cd cesium-unity-samples/Packages/
4、拉取插件 并取名com.cesium.unity
04:47 开始拉取插件
输入:git clone --recurse-submodules https://github.com/CesiumGS/cesium-unity.git com.cesium.unity
等待下载完成

05:03 下载完成
PS:此次拉取中有部分文件拉取失败的,后面会手动下载,暂时不用管
05:24 安装Reinterop
5、安装cesium 官方插件:Reinterop

1)进入com.cesium.unity文件夹
输入:cd com.cesium.unity/
2)安装Reinterop
输入: dotnet publish Reinterop~ -o .
等待安装完成

06:37 完成
1、Unity进行第一次编译
用Unity打开 该项目(修改版本的方法参照 第一节 的内容)
06:59 打开项目

已经有Cesium插件,但提示错误。
报错原因是没有编译,暂时不用管他
这时可关闭Unity,准备CMake编译
08:05 提示错误
08:24 CMake编译
2、CMake编译
1)进入native
输入:cd native~
路径:
cesium-unity-samples\
Packages\com.cesium.unity\native~
2)编译:
输入:cmake -B build -S . -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Debug
09:07 cmake编译

此次编译会报错,错误为文件缺失:
09:32 缺失文件

解决方法:
10:01 补充文件
在官网:
https://github.com/CesiumGS/cesium-unity
找到 native~/exetern 文件下的空文件夹对应的文件 进行手动下载,并补充到项目对应位置中,
补充完毕后,再次执行编译:
输入:cmake -B build -S . -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Debug
(如果 还有报错,可以查看报错文件的来源,进行进行补充,补充后 依旧再次执行:

)
12:32 编译完成

3、VS编译
13:50 生成解决方案
找到native~/build 文件夹下的
CesiumForUnityNative.sln文件,用VisualStudio2022打开
在方案管理器中 右键解决方案 选择生成解决方案,等待生成完成

14:05 生成完成
1)在native~/build/Runtime/Debug 中,有动态库文件:CesiumForUnityNative-Runtime.dll
2)在native~/build/Editor/Debug 中,有动态库文件:CesiumForUnityNative-Editor.dll
3)将两个文件其拷贝至com.cesium.unity/Editor文件夹下
16:18 拷贝结果

拷贝完成后打开Unity项目,(不用再下载CesiumForUnity包)能正常显示,无报错,则编译成功。

16:37 成功
一、在拷贝项目时 git clone --recurse-submodules 理论上是可以将所有子模块完全下载,而UP演示的报错 通常是两个原因:
1、git的缓存小于文件
2、git文件路径过长而git并未设置使用长文件路径,
虽然理论上可以 在修改git后 可以直接下载完整个cesium-unity.git(com.cesium.unity文件夹内的)项目,但实测中,到加载模块
1)native~\extern\cesium-native\extern\CSPRNG
2)native~\extern\cesium-native\extern\Catch2
3)native~\extern\cesium-native\extern\GSL
等等
时会卡住,调整起来反倒麻烦,不如就按照UP的方法: 找到空文件夹然后再手动下载内容。
二、在实际操作时,在CMake编译 生成build 后,用VS生成解决方案时 遇到了 一个错误:
KTX-Software 中的 version.h文件丢失 和Debug/xxx丢失 的问题,二退出编译 导致 放入Editor的两个文件~-Runtime.dll 会无法生成,根据 KTX的使用说明
https://github.com/CesiumGS/KTX-Software/blob/dd389bdfd05343ddcd374614c71de66849bd3df4/BUILDING.md
中 叙述:


需要 先
进入 KTX-Software的文件目录下
输入:cmake . -B build -D KTX_FEATURE_LOADTEST_APPS=ON -D KTX_FEATURE_DOC=ON(-D KTX_FEATURE_TOOLS_CTS=ON -D BASISU_SUPPORT_OPENCL=ON)
括号内内容选填, 编译后 再输入:
cmake --build build
完成后,将 Debug文件 复制后 放入KTX-Software文件目录下 则可修复发包时的这两个报错
三、现在 还遗留一个问题 ,在项目中 已经可以和UP一样完整的显示 并且没有报错,但是 发布后,看不见地面,通过Debug发现问题

这 眼熟的报错……
该问题 尚未得到解决(那个DLL处理了半天 打包不跟着走?!),如果 有大佬知道的话 还望不吝赐教,谢谢
在下写这内容的时候主要是总结UP的操作流程,如有理解错误的地方欢迎指正,定及时修改,谢谢各位大佬