UPROPERTY(EditAnywhere)
UClass* type;
UPROPERTY(EditAnywhere)
TSubclassOf<AActor> type1;
在第二个声明中,模板类告诉编辑器的属性窗口仅列出从 AActor 派生类作为属性的选择。在第一个声明中,可以选择任何 UClass。下图说明了这一点。
除了这种 UPROPERTY 安全性之外,您还可以获得 C++ 级别的类型安全性。如果您尝试将不兼容的 TSubclassOf 类型分配给彼此,您将收到编译错误。如果您尝试分配通用 UClass,它将执行运行时检查以验证它是否可以执行分配。如果运行时检查失败,则结果值为 nullptr。