UE4 UCLASS(...)

请说下,UE4 UCLASS(...)
最新回答
汏姐萌神

2025-03-27 00:03:17

UCLASS 在 UE4 中是一个宏,用于声明类并传递描述符以创建特定于引擎的 UClass。以下是关于 UCLASS 宏的详细解答:

  • 基本功能:UCLASS 宏包含类的标准 C++ 类声明,并传递描述符以创建特定于 Unreal Engine 4 的 UClass。这是定义引擎和编辑器特定行为的关键工具。

  • 必须伴随宏:在类体最前方需要放置 GENERATED_BODY 宏,这是与 UCLASS 宏配合使用的。

  • 关键字与功能

    • classGroup:设置编辑器中显示类的 actor 组。
    • Within:确保类实例始终具有指定外部类的子类继承关系。
    • BlueprintType:使类公开为蓝图中变量的类型。
    • NotBlueprintType:禁止将类公开为蓝图中变量的类型。
    • Blueprintable:允许使用蓝图创建类的实例。
    • NotBlueprintable:禁止使用蓝图创建类的实例。
    • MinimalAPI:指示类仅导出用于 dynamic_cast<> 等工作所需的方法。
    • customConstructor:阻止自动生成的构造函数声明。
    • Intrinsicnoexport:分别指示类在 C++ 中直接声明,且不生成自动生成的代码。
    • placeablenotplaceable:分别表示类在编辑器中可创建并放置或禁止放置。
    • DefaultToInstanced:表明类实例化后被视为“实例”,即在构造时被复制。
    • Const:表示类中的所有属性和函数都是 const,且应导出为 const 类型。
    • Abstract:表明类为抽象类,不能直接实例化。
    • deprecated:表示不推荐使用此类,序列化时不会保存实例。
    • TransientnonTransient:分别表示类无法保存或应该正常保存。
    • configperObjectConfig:用于在构造时加载对象配置。
    • configdonotcheckdefaults:确定在序列化为配置时是否基于 base / defaults ini 进行检查。
    • defaultconfig:仅将对象配置保存到默认 INI,而不保存到本地 INI。
    • editinlinenoteditinlinenew:影响属性编辑器的行为。
    • hidedropdown:表示类用于选择类的编辑器下拉列表中不显示。
    • showCategorieshideCategories:在属性查看器中显示和隐藏类别。
    • 更多关键字:如 ComponentWrapperClass、showFunctions、hideFunctions、autoExpandCategories、autoCollapseCategories、dntAutoCollapseCategories、collapseCategories、AdvancedClassDisplay、ConversionRoot、Experimental、EarlyAccessPreview、SparseClassDataType 等,用于进一步定义类的行为和特性。
  • Metadata:包括 BlueprintSpawnableComponent、ChildCanTick、ChildCannotTick 等关键字,用于更细致地控制 Actor 和组件类的行为。

通过正确使用 UCLASS 描述符和元数据,开发者可以精细控制 UE4 类的特性和行为,从而提高开发效率和游戏质量。