UEC学习笔记(二)| UObject类和Actor类

一、UObject

  当一个类继承自UObject类时,可以使用到虚幻引擎已经准备好的如下功能:

(1)Garbage collection 垃圾收集

(2)Reference updating 引用自动更新

(3)Reflection 反射

(4)Serialization 序列化

(5)Automatic updating of default property changes 自动检测默认变量的更改

(6)Automatic property initialization 自动变量初始化

(7)Automatic editor integration 和虚幻引擎编辑器的自动交互

(8)Type information available at runtime 运行时类型识别

(9)Network replication 网络复制

 

垃圾收集:

  在一个项目中,有大概率会在一个类中申请空间, 而在另一个类中释放掉。因此需不需要释放,在哪释放是很麻烦的问题。解决这个问题的路径有两种:

① 继承自UObject类,并使用UPROPERTY宏进行标记。让UObject架构自行进行生命周期管理;

②使用智能指针,智能对非继承自UObject类使用。

反射:

  C++中没有反射机制,因此虚幻自己建立了一套,用来解决运行时态下获取一个类及其成员变量,成员函数以及名字的问题。

序列化:

  将类对象保存到磁盘,并且完好的读取。

 

二、Actor

  理解Actor只需要理解,actor是用来挂在组件Component的类。各种功能是通过相应的Component的实现的。

对于一些功能,既可以使用Component实现,也可以直接通过C++代码实现(如移动),但如果需要使用到序列化等UObject的功能,需要额外讨论。

 

三、Pawn,Character类和Controller类

   Character继承自Pawn,Pawn是由控制器控制的棋子,简单理解Character就是人型生物。而Controller是控制Pawn类的,可以使Player也可以是AI。

 

posted on 2021-09-18 16:22  EPdanpa  阅读(666)  评论(0)    收藏  举报