1.Unlua源码解析(附二) 源码中的源码重要类及核心函数逐行解释
Unlua源码解析(附二) 源码中的重要类及核心函数逐行解释
源码解析:重要类及核心函数逐行解释 1. FClassDesc 该类用于描述一个类,包含类名、源码类大小和继承关系等信息。源码 2. FFunctionDesc 对应UE中的源码UFunction,存储更详细信息,源码如参数、源码奥搜源码元数据,源码允许FFunctionDesc调用方法。源码 3. FProporityDesc 描述参数,源码并提供参数在Lua和C++间转换的源码辅助方法。 4. FFieldDesc 用于描述字段的源码类。 5. FReflectionRegistry 用于注册反射信息,源码借助UE反射接口加载类。源码 6. FLuaContext 全局类,源码负责绑定Lua对象和实现Lua与C++间的源码git 源码语言交互。 7. LuaCore 包含很多关键方法,如注册类、注册方法,是Unlua的核心类。 8. UUnLuaManager 集成绑定Lua与C++的多种方法。FReflectionRegistry内重要方法
2.1 RegisterClass
-: 通过UE反射接口尝试加载指定类。 : 调用RegisterClass方法。xiep分销源码2.2 RegisterClass
-: 若无参数,返回。 -: 获取并检查类的类型信息,仅当类型为Struct时继续。 -: 若已注册,使用注册信息;否则注册新信息,返回。python源码文本2.3 RegisterClassInternal
存名称和Struct到FClassDesc字典,便于后续使用。 -: 创建FClassDesc并记录相关信息。 -: 遍历父类,记录父类名称和Struct。2.4 GetClassChain
获取类的继承链,OutChain表示类及其父类。授权防伪源码LuaCore内重要方法
3.1 Global_RegisterClass
读取类型信息,注册类。3.2 RegisterClass
记录反射信息,创建元表,便于Lua与C++交互。3.3 RegisterClassInternal
创建元表,设置元方法,记录全局表中。3.4 RegisterClassCore
创建元表,设置元方法,记录元表信息。3.5 SetTableForClass
将类元表放入全局表。3.6 Class_Index
处理类索引方法。3.7 GetField
获取字段或方法。3.8 GetFunctionList
获取模块内所有方法。3.9 PushObjectCore
创建并绑定Lua对象。3. NewLuaObject
创建Lua表表示UObject。FLuaContext内重要方法
4.1 FindExportedReflectedClass
通过名称查找导出的反射类。4.2 NotifyUObjectCreated
: 存储新创建的Object。 : 尝试绑定Lua到Object。4.3 TryToBindLua
绑定Lua模块到UObject。UUnLuaManager内重要方法
5.1 Bind
新UObject实例创建时,创建Lua对象并绑定。5.2 BindInternal
实现Lua绑定UObject的关键函数。 方法涵盖模块名与C++对象关联、覆盖C++函数、处理动画覆盖等。