01 模块简介
一个文件夹对应一个模块。
一个模块中包含以下内容:
- public文件夹
- private文件夹
- .build.cs文件
不同模块之间的互相调用并不是很方便,只有通过xxxxx._API宏
暴露的类和成员函数才能够被其它模块访问。
02 创建自己的模块
快速创建模块
创建标准的模块
-
创建模块构建文件
-
创建模块的头文件和源文件
-
创建模块的预编译文件
03 引入模块
-
对于
游戏模式
而言,引入当前模块的方式是游戏工程目录下的souce文件夹中,找到工程名.Target.cs
文件中的SetupBinaries
函数,添加引入的模块名:
-
对于
插件模块
而言,修改当前插件的.uplugin
文件即可:
模块加载类型:
模块加载时机:
04 虚幻引擎初始化引擎加载顺序
05 UBT和UHT
模块是用什么样的方式配置、编译、启动和运行的呢?
UBT 跨平台的构建工具
UBT的工作分为三个阶段:
- 收集阶段:收集信息,收集环境变量,虚幻引擎源代码目录,虚幻引擎目录,工程目录等。
- 参数解析阶段:解析传入的命令行参数,确定自己需要生成的目标类型。
- 实际生成阶段:根据环境和参数,开始生成makefile,确定c++各种目录的位置。然后开始构建整个项目。此时编译器工作交给标准C++编译器。
UHT 实现反射机制
UHT工作流程: