码迷,mamicode.com
首页 > 其他好文 > 详细

UnrealEngine4之UObject(一)

时间:2014-10-16 13:16:22      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:unrealengine   uobject   动态创建   dynamiccreate   

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(一)

标签:unrealengine   uobject   动态创建   dynamiccreate   

原文地址:http://blog.csdn.net/flushthink/article/details/40143325

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!