UObject是所有对象类的基础类(不是所有类的基础类), 包括AActor, UActorComponent
虚幻引擎中的对象基础类为 UObject。UCLASS 宏可用于标记从 UObject 派生的类 ,使 UObject 处理系统识别到它们
UCLASS 宏
UCLASS 宏为 UObject 提供一个对 UCLASS 的引用,描述其基于虚幻引擎的类型。每个 UCLASS 保留一个称作“类默认对象(Class Default Object)”的对象,简称 CDO。CDO 本质上是一个默认“模板”对象,由类构建函数生成,之后并未进行修改。UCLASS 和 CDO 均可为特定对象实例恢复,但它们通常为只读。使用 GetClass() 函数即可随时访问对象实例的 UCLASS。
UCLASS 包含定义类的一套属性和函数。这些是本地代码可用的普通 C++ 函数和变量,但被虚幻引擎特有的元数据所标记,它们在对象系统中的行为也因此受到控制。如需了解标记语法的更多细节,请查阅 编程参考 。
需要注意 UObject 类还可包括仅限本地的属性,这些属性不存在于相应的 UCLASS 中。
UObjects 可拥有成员变量(称作属性)或任意类型的函数。然而,为便于虚幻引擎识别并操控这些变量或函数,它们必须以特殊的宏进行标记,并符合一定类型的标准。如需了解这些标准的细节,请查阅 属性 和 函数 参考页面。
AActor 是所有Actor的基础类, 关于Actor的一个很好的简介是“可以更新的一群组件”. AActor中有一个RootComponent成员,用来保存组件树中的顶级组件, Actors 本身没有变换,所以它们不具有位置、旋转度、 或缩放比例信息。但是,它们可以依赖于它们组件的变换;更确切地讲,是它们的根组件。如果这个组件是 SceneComponent ,那么它将为 该 Actor 提供变换信息。否则,Actor将没有变换。其他的附加组件的变换是相对于它们所附加到的组件的。
AActor包含在AActor生命周期中调用的一系列事件。以下列表是一组简化的事件,描绘了整个生命周期。
-
BeginPlay——对象首次在Gameplay中存在时调用。
-
Tick——每帧调用一次,随着时间的进行持续完成工作。
-
EndPlay——对象离开Gameplay空间时调用。
UActorComponent 是所有组件的基础类,组件是一种特殊类型的对象,不可单独存在,旨在用作Actor中的子对象。
USceneComponent具有变换,这意味着它们可以到处移动及和世界中的其他东西,UPrimitiveComponent不仅可以存在于世界中,同时具有某种形式的表示(比如一个网格物体或粒子系统)。很多有趣的物理和碰撞设置