UE C++ UObject 功能的初步总结
一. Uboject的
1.垃圾回收:上篇文章介绍过
2.引用更新
1. 反射:之前的文章描述过的CDO,还有就是C++与蓝图相互调用UFUCTION,UPROPERTY
2.序列化:编辑器的资产序列化到磁盘上,变为.uasset等格式的资产文件。所有的东西存在编辑器里,都是UObject,它们通过Serialize()进行里的序列化操作。
3.默认属性值自动更新:属性值你改过,就以你改过为准。你没改过,它就是默认属性值。你在代码里改过默认属性值,则所有没改过的属性值都会跟着改。
4.自动属性初始化:所有UPROPERTY下的属性值,如果自己不初始化,则会自动初始化,就是int ,float 会初始化0,字符串会初始化为空串。
5.运行时类型信息可用:做类型转换的判定,is,as的关系
6.网络复制:有些属性要从服务器同步过来,就需要UPREPERTY里的元数据replitic。
USTRUCT 大部分都有,它有着和UObject一样的反射和序列化能力。USTRUCT会被当做数值类型处理,而且而且不会被GC掉。
UObject不具备每帧更新的能力,在必要时可以使用inherites类说明符从 FTickableGameObject继承即可添加此能力,拥有Tick()。