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源码解析12 - Lua与UE4的混合GC