UE4入门-常见的宏-UCLASS

UCLASS 宏为 UObject 提供一个对 UCLASS 的引用,描述其基于虚幻引擎的类型。每个 UCLASS 保留一个称作“类默认对象(Class Default Object)”的对象,简称 CDO。CDO 本质上是一个默认“模板”对象,由类构建函数生成,之后并未进行修改。UCLASS 和 CDO 均可为特定对象实例恢复,但它们通常为只读。使用 GetClass() 函数即可随时访问对象实例的 UCLASS

UCLASS 包含定义类的一套属性和函数。这些是本地代码可用的普通 C++ 函数和变量,但被虚幻引擎特有的元数据所标记,它们在对象系统中的行为也因此受到控制

需要注意 UObject 类还可包括仅限本地的属性,这些属性不存在于相应的 UCLASS 中


游戏性类

虚幻引擎中每个游戏类由一个类头文件 .h 和一个类源文件 .cpp 构成。类头包含类和类成员(如变量和函数)的声明,而在类源文件中通过实现属于类的函数来定义类的功能

游戏性类的类头文件使用标准C++语法,并结合专门的宏,以简化类、变量和函数的声明过程

在每个游戏性类头文件的顶端,需要包含生成的头文件(自动创建),因此在 ClassName.h 的顶端不许出现 #include "ClassName.generated.h"


类声明

类声明定义类的名称、其继承的类,以及其继承的函数和变量。类声明还将定义通过 类说明符元数据 要求的其他引擎和编辑器特定行为

类声明的语法如下所示

UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])
class ClassName : public ParentName
{
    GENERATED_BODY()
}


声明包含一个类的标准C++类声明。在标准声明之上,描述符(如类说明符合元数据)将被传递到 UCLASS 宏。它们用于创建被声明类的 UClass ,它可被看作引擎对类的专有表达。此外, GENERATED_BODY() 宏必须被放置在类体的最前方

你可能感兴趣的:(ue4学习笔记,宏,虚幻引擎)