UE4 动态添加/删除蓝图Actor三维模型

应用场景:

  想通过业务数据动态添加飞机/车辆等模型到三维机场,并且能根据需求移除指定的三维模型。

一,动态添加三维模型的代码:

1 FString blueprintName = TEXT("Blueprint'/Game/blueprints/airplane/BP_YuJing_2000.BP_YuJing_2000_C'");
2 //实例化蓝图
3 UClass* EntityClass = LoadClass<AActor>(nullptr, *blueprintName);
4 //加载到场景
5 AAEntityBase* entityInstance = GetWorld()->SpawnActor<AAEntityBase>(EntityClass, position, FRotator(0.0f, -90.0f, 0.0f));

通过上面三步就将飞机(蓝图actor)添加到三维场景指定的位置,注意蓝图名称是选中蓝图按ctrl+c,再粘贴到代码里面,后面加上"_C"。

如下图我复制的内容为“Blueprint'/Game/blueprints/vehicle/BP_Vehicle_ChongYangChe.BP_Vehicle_ChongYangChe'”。

二,动态删除

//清除上次加载的实体
    for (int16 i = 0; i != m_pGlobalInstance->m_EntityArray.Num(); ++i) {
        AAEntityBase* temp = m_pGlobalInstance->m_EntityArray[i];
        GetWorld()->RemoveActor(temp, true);
        GetWorld()->DestroyActor(temp);
    }

我是将上面添加的三维模型保存到全局变量TArray<AAEntityBase*> m_EntityArray;

posted @ 2022-12-29 11:36  一梦、  阅读(449)  评论(0编辑  收藏  举报