敢想敢做敢拼 发表于 2023-4-6 10:42

UE4 插件和模块

模块:在UE4中的模块都继承自ModulRules这个类,如下图


一个项目中可以包含多个模块,如下图TestCppProject文件夹,就是TestCppProject项目中的一个模块


TestCppProject.Build.cs为这个模块的声明,其中包含了这个项目引用的所有其他模块


TestCppProject文件夹内的所有内容只是项目的一个模块,一个项目可以包含多个这样的模块,模块的生命就是文件夹内部的后缀.cs的代码。这个.cs文件中,包含了该模块依赖的所有其它模块
插件

引擎插件:放在引擎中的插件。
项目插件:放在某一个项目中的插件,引擎插件放在某一个项目中,就成了项目插件
一个插件可以包含多个模块,如下图,插件中的Modules是一个类似数据的形式,可以包含多个元素,对应的就是多个模块
插件类型:分为Editor模式,和Runtime模式,Editor模式,在打包的时候,这个插件中这个Editor类型的模块会被从项目中剥离出去,Runtime可以正常打包进去



插件里面都是写的什么东西呢?
插件里面主要是实现一些算法,而插件的模块声明(后缀.cs文件)是放置的我们引用的其它模块,也就是说模块可以引用模块,模块可以依赖其它模块,其实我们的模块就是个dll动态链接库,我们可以在我们的插件文件夹目录中找到我们的那个dll




上面这个pdb,是调试用的,如果少了这个文件,就无法调试了
UE4代码文件的后缀都是什么?
项目文件目录下的Intermediate文件夹中存放的是反射数据,如下图


即使把这些文件删除了,引擎也会自动生成这些反射数据

多个模块之间的依赖
组织模块的描述文件有以下几种:
1,.uproject文件:项目描述文件,里面描述了Module的类型,加载时机等。,如下图,描述了项目模块TestCppProject的类型,加载时机。这个项目只包含了TestCppProject这一个模块


2,.uplugin文件:插件描述文件,描述了插件中的Module,格式与 .uproject文件相同,都是json文件,如下图的插件描述文件


3,.build.cs文件:主要描述所在Module的编译环境,里面包含了该模块引用依赖的其它所有模块


模块部分见下面链接中讲的比较详细

如何在项目中添加一个插件:
1,在项目的.build.cs中添加对插件的公共依赖


2,在.uproject中添加plugin

FeastSC 发表于 2023-4-6 10:44

build对依赖模块进行了配置后,依赖模块会自动load?LoadModuleChecked是什么情况 下使用呢
页: [1]
查看完整版本: UE4 插件和模块