您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页UE5C++中,NewObject<>()和CreateDefaultSubobject<>()的区别

UE5C++中,NewObject<>()和CreateDefaultSubobject<>()的区别

来源:叨叨游戏网
UProceduralMeshComponent* ProceduralMeshComponent = NewObject<UProceduralMeshComponent>(MyActor);
UProceduralMeshComponent* ProceduralMeshComponent = CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("ProceduralMesh"));

NewObject函数


示例代码 :创建并添加到Actor中
UProceduralMeshComponent* ProceduralMeshComponent = NewObject<UProceduralMeshComponent>(newActor);
ProceduralMeshComponent->RegisterComponent();	// 手动注册
ProceduralMeshComponent->AttachToComponent(newActor->GetRootComponent());	

CreateDefaultSubobject函数


  1. 创建方式:传入类名作为模板参数,以及传入形参作为对象名。
  2. 上下文环境:通常在Actor的构造函数中使用,创建默认子对象。
  3. 实例化方式:创建一个新的子对象,并返回其指针。
  4. 内存管理自动内存管理,不需要手动释放。
  5. 使用场景:构造函数中,会自动注册,不能在其他地方使用。
示例代码:在Actor构造函数中使用
MyActor::MyActor()
{
    PrimaryActorTick.bCanEverTick = true;
    UProceduralMeshComponent* ProceduralMeshComponent = CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("ProceduralMesh"));
    ProceduralMeshComponent->SetupAttachment(GetRootComponent());
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务