跳至主要內容

F21.Spawn actor|带参生成

Mr.Si小于 1 分钟u++

导言

头像
Spawn actor|带参生成怎么做?
AEquipmentBase* NewActor = GetWorld()->SpawnActor<AEquipmentBase>(AEquipmentBase::StaticClass());
if (NewActor)
{
    NewActor->ItemTag = PickUpStruct.ItemTag;
    NewActor->Quantity = PickUpStruct.Quantity;
}

头像
这样好像不太行
头像
可以使用SpawnActorDeferred 生成 Actor,他不会立即初始化,而是设置 Actor 的属性后手动调用 FinishSpawning初始化。
 // 使用 SpawnActorDeferred 生成 Actor
    AMyActor* NewActor = GetWorld()->SpawnActorDeferred<AMyActor>(AMyActor::StaticClass(), FTransform::Identity);

    if (NewActor)
    {
        // 设置 Actor 的属性
        NewActor->ItemTag = ItemTag;
        NewActor->Quantity = Quantity;

        // 完成 Actor 的生成
        NewActor->FinishSpawning(FTransform(SpawnLocation));
    }