美文网首页工作生活
引擎是怎么加入所有UClass等类的预定义信息

引擎是怎么加入所有UClass等类的预定义信息

作者: 我真的不知道该起什么名字了 | 来源:发表于2019-07-01 19:48 被阅读0次

在main函数前执行一些代码,加入一些预定义信息.

具体方式:

1.每个定义了GENERATED_BODY()的类,都会自定义一些全局静态变量,就是这些变量初始化的时候,在main函数之前执行的代码

image.png

通过这些宏定义和ue4的自身预处理,会在XXX.generated.h文件中生成相关定义

image.png image.png

经过不断的变换,最终定义了这个全局静态变量,并且,这个变量还不是指针,是个类的实体对象,即:是要进行初始化的,并且在main函数之前调用构造函数.


image.png image.png

跳入TClassCompiledInDefer类中看一下具体定义

image.png

我们看到该构造函数里面调用了UClassCompiledInDefer函数,具体看一下这个函数是怎么实现的.

红线框住的东西就是各种存储UClassInfo的容器.


image.png image.png

在编辑器启动的时候,main函数之前,就注册了这些编译信息.

image.png

相关文章

网友评论

    本文标题:引擎是怎么加入所有UClass等类的预定义信息

    本文链接:https://www.haomeiwen.com/subject/naincctx.html