在BeginPlay()中不能使用CreateDefaultSubobject來動態創建一個組件。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(),註冊該組件