UE4 Unlua源码解析3 -FReflectionRegistry内重要方法逐行解释

Posted 珞珈大胖强TURBO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 Unlua源码解析3 -FReflectionRegistry内重要方法逐行解释相关的知识,希望对你有一定的参考价值。

FReflectionRegistry内重要方法逐行解释

RegisterClass

76 取掉头字母

77 - 81 借助UE 反射相关接口 尝试加载InName对应的类

82 调用参数重载方法RegisterClass

RegisterClass

94-97 传入struct为空,返回

99-103 得到Struct的类型,FClassDesc::GetType中通过强转是否成功判断,最后只有Struct是

SCRIPTSTRUCT,
CLASS,

其中之一才继续

105-110 如果已经注册过,直接使用注册过的FClassDesc指针,去调用GetClassChain,然后返回

112-115 如果还没注册过,先注册,再调用GetClassChain,然后返回

RegisterClassInternal

存名称和Struct到FClassDesc的字典的方法,便于Unlua使用

236-242 根据传入信息创建FClassDesc,两个字典加入对应关系,非原生类也加入新的字典

244-247 得到ClassDesc的所有父类的名称和UStruct数组

248-267 遍历所有父类,如果Struct2Classes已经存了相关信息,说明已经注册过,结束,如果没有相关信息,存相关信息

269 返回ClassDesc

GetClassChain

拿到类的继承链,OutChain的0 是最子孙,OutChain【OutChain.Size】是最父类

以上是关于UE4 Unlua源码解析3 -FReflectionRegistry内重要方法逐行解释的主要内容,如果未能解决你的问题,请参考以下文章

UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理

UE4 Unlua源码解析1 - 读源码的前置知识

UE4 Unlua源码解析1 - 读源码的前置知识

UE4 Unlua源码解析12 - Lua与UE4的混合GC

UE4 Unlua源码解析5 - FLuaContext内重要方法逐行解释

UE4 Unlua源码解析5 - FLuaContext内重要方法逐行解释