UE4C++中动态创建组件

在BeginPlay()中不能使用CreateDefaultSubobject来动态创建一个组件。


for (int i = 0; i < 3; i++)

{
USkeletalMeshComponent* SkeletalMeshCompon = NewObject<USkeletalMeshComponent>(this, TEXT("Sketal" + i));
SkeletalMeshCompon->RegisterComponent();
SkeletalMeshCompon->SetCollisionEnabled(ECollisionEnabled::NoCollision);
int RandomType = FMath::RandRange(0, SkeletameshArray.Num() - 1);
USkeletalMesh* CurrentSkeletal = SkeletameshArray[RandomType];
SkeletalMeshCompon->SetSkeletalMesh(SkeletameshArray[RandomType]);

}

重点::用newobject来创建组件,最终一定要RegisterComponent(),注册该组件

猜你喜欢

转载自blog.csdn.net/weixin_36369675/article/details/79951336