首页 > 解决方案 > 如何在 C++ 中生成 10 个球体

问题描述

假设我在 UE IDE 中选择了第一人称模板,我预计在 1500 个单位的距离处创建 10 个球体。同样,当一个人射击一些球体时,球体就会消失。如何在 C++ 中创建球体?

标签: c++unreal-engine4

解决方案


您通常会在类中使用该SpawnActor方法。UWorld您可以在此处找到有关该方法的更多信息,但本质上您将获得对世界的引用,在传入四个参数时SpawnActor使用该UWorld引用调用:您要生成的演员,通常是类型TSubclassOf<AActor>,其中AActor可以是类型的任何子类AActor,要生成的actor的位置,type FVector,要生成的actor的旋转,type FRotator,以及要生成的actor的一些附加信息,type FActorSpawnParameters。这是被调用的函数的示例。首先是头文件,

// header file (.h)
UPROPERTY(EditDefaultsOnly, Category = "Actor To Be Spawned")
TSubclassOf<AActor> ActorToBeSpawned;

请注意,此属性将在蓝图中设置。

然后,在 cpp 类的某个地方,

// cpp class (.cpp)
FActorSpawnParameters SpawnParams;
GetWorld()->SpawnActor<AActor>(ActorToBeSpawned, FVector(300, 300, 300), FRotator::ZeroRotator, SpawnParams);

请注意,最后一个参数是可选的,但您始终可以在FActorSpawnParameters. 有关所有这些特定属性的列表,您可以在此处找到它们。此外,第二个参数,即要生成的演员的位置,目前在此示例中是硬编码的,因此您可以任意设置。传入的每个数字FVector分别代表 x、y 和 z 坐标。最后,第三个参数当前是FRotator每个轴上零度的对象,因此要生成的 actor 将使用其默认指定的旋转。

话虽如此,您应该能够将此逻辑合并到您的自定义逻辑中,以便您可以实现生成 10 个相隔一定距离的球体 Actor 的目标。


推荐阅读