虚幻引擎C++生成演员错误

Unreal Engine C++ Spawn Actor Bug

本文关键字:错误 引擎 C++      更新时间:2023-10-16

我有一个简单的益智游戏。

它是多个简单游戏的组合。由于这些游戏在游戏过程中是轮换的,因此一切都是动态生成的。 我在使用SpawnActor时遇到问题。

有一个名为XGame(AActor(的类由级别管理器(APawn(生成。它负责为这个特定的X游戏生成演员。

XGame.cpp

const FVector ActorLocation = GetActorLocation();
const FVector StickLocation = FVector(0, 0, 0) + ActorLocation;
const FVector BallLocation = FVector(0, 100, 0) + ActorLocation;
const FVector CircleLocation = FVector(0, 200, 0) + ActorLocation;
UWorld* World = GetWorld();
AXStick* Stick = World->SpawnActor<AXStick>(StickLocation, FRotator(0, 0, 0));
AXBall* Ball = World->SpawnActor<AXBall>(BallLocation, FRotator(0, 0, 0));
AXCircle* Ball = World->SpawnActor<AXCircle>(CircleLocation, FRotator(0, 0, 0));

问题是,每次我生成一个演员时,它的 X 坐标都会增加 68。(我不知道为什么 68(

例如;

棍子在 0, 0, 0 处生成

球在 68, 100, 0 生成

圆圈生成于 136, 200, 0

他们都是 Aharacter

如果有人能帮忙,我将不胜感激

我设法通过将棒、球和圆的基类更改为 AActor 来使其正常工作。因为字符类自动生成胶囊组件。它们发生碰撞,生成的角色每次移动 68(角色的默认胶囊移动半径为 34.0(。