Component浅尝

115 阅读1分钟

写在前面

在C++类中,Component的全称是UActorComponent, 它直接继承于UObject, 在继承结构上和Actor是平等的。如果把Actor类比为人彘的话,那么Component就是躯干,Actor之所以能够被看见,被定位,能够化身为形态各异功能各异的个体,都是因为Component。

Component的继承结构

image.png

我们在之前所接触的所有Actor所带有的组件都直接来自于这三个基本Component的后代或本身。

比如USphereArea是继承自ShapeComponent的,而ShapeComponent又是继承自PrimitiveComponent,这很符合PrimitiveComponent带有几何特性的描述。

此外,如果我们在构造组件时,我们可以根据需求继承自不同的类,比如"移动Actor", 之所以使用UActorComponent,那是因为这个组件的作用是让依附的Actor进行移动,而非自身进行移动,因此不需要像SceneComponent一样拥有location等信息。

需要注意的是,只有SceneComponent及其后代才拥有SetUpAttachment的能力。

Component的生命周期

image.png