在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(),注册该组件