Unreal Engine 4:类创建、实例化与内存管理全解析
1. 指定 UCLASS 作为 UPROPERTY 的类型
在 UE4 里,若构建了自定义的 UCLASS,该如何对其进行实例化呢?UE4 中的对象采用引用计数和内存管理机制,所以不能直接使用 C++ 的 new 关键字来分配内存。而是要借助 ConstructObject 函数来实例化 UObject 派生类。此函数不仅需要创建对象的 C++ 类,还需要该 C++ 类的蓝图类派生(即 UClass* 引用,它是指向蓝图的指针)。
从 C++ 代码实例化特定蓝图的实例时,C++ 代码不应知晓具体的 UCLASS 名称,因为这些名称是在 UE4 编辑器中创建和编辑的。我们可以让 UE4 程序员从 UE4 编辑器的下拉菜单中选择可用的蓝图(从特定 C++ 类派生),为 C++ 代码提供要实例化的蓝图类名称。具体操作步骤如下:
1. 找到要添加 UCLASS 引用成员的 C++ 类。
2. 在 UCLASS 内部,使用如下代码声明一个 UPROPERTY,允许从继承自 UObject 的层次结构中选择一个 UClass(蓝图类):
UCLASS()
class CHAPTER2_API UUserProfile : public UObject
{
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Unit)
TSubclassOf<UObject> UClassOfPlayer;
Unreal Engine 4类创建、实例化与内存管理解析
超级会员免费看
订阅专栏 解锁全文
103

被折叠的 条评论
为什么被折叠?



