首页 > 代码库 > UnrealEngine4之UObject(一)
UnrealEngine4之UObject(一)
Runtime最关键的实现是UObject,它是所有引擎层面、游戏层面对象的基类。
UObject实现了动态创建、持久化、脚本化、内存管理、生存期控制。
---------------------------
关于动态创建
---------------------------
通过一个类名创建一个对象就是动态创建。
UnrealEngine4流程就是:
FStringClassReference XxxxClassName;
|
TSubclassOf<Xxxx> XxxxClass;
|
Xxxx* XxxxObject;;
通过类名找到运行时类型信息,再通过运行时类型信息创建一个对象。
UField、UStruct、UClass、UProperty、UFunction、UEnum等是构建运行时类型信息的数据结构,参见Runtime/CoreUObject/Public/UObject/Class.h
这个时候引申出一个问题:这些运行时类型信息怎么构建起来?
UnrealEngine4里每个类都会对应一个Xxxx.generated.h,这个里面放着构建运行时类型信息的宏定义代码。这个Xxxx.gengerated.h是通过UnrealHeaderTool(UHT)生成的。
UHT通过解析每个头文件里的关键字UCLASS、USTRUCT、UPROPERTY、UFUNCTION、UENUM等生成出来的。
UnrealEngine4之UObject(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。