5、Unreal Engine 4:类创建、实例化与内存管理全解析

Unreal Engine 4类创建、实例化与内存管理解析

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值