【发布时间】:2020-12-23 13:15:09
【问题描述】:
假设我在 UE IDE 中选择了第一人称模板,我希望在 1500 个单位的距离处创建 10 个球体。同样,当一个人射击一些球体时,球体就会消失。 如何在 C++ 中创建球体?
【问题讨论】:
标签: c++ unreal-engine4
假设我在 UE IDE 中选择了第一人称模板,我希望在 1500 个单位的距离处创建 10 个球体。同样,当一个人射击一些球体时,球体就会消失。 如何在 C++ 中创建球体?
【问题讨论】:
标签: c++ unreal-engine4
您通常会在UWorld 类中使用SpawnActor 方法。您可以找到有关 here 方法的更多信息,但本质上您将获得对世界的引用,使用该 UWorld 引用调用 SpawnActor,同时传入四个参数:您要生成的演员,通常是类型TSubclassOf<AActor> 其中AActor 可以是AActor 类型的任何子类,要生成的actor 的位置,类型为FVector,要生成的actor 的旋转,类型为@987654331 @,以及要生成的actor的一些附加信息,类型为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 中设置特定属性。有关所有这些特定属性的列表,您可以找到它们here。此外,在此示例中,第二个参数,即要生成的演员的位置当前是硬编码的,因此您可以任意设置。传入的FVector 中的每个数字分别代表 x、y 和 z 坐标。最后,第三个参数当前是每个轴上为零度的FRotator 对象,因此要生成的actor 将使用其默认指定的旋转。
话虽如此,您应该能够将此逻辑合并到您的自定义逻辑中,这样您就可以实现生成 10 个相隔一定距离的球体 Actor 的目标。
【讨论】: