Ошибка Unreal Engine C ++ Spawn Actor - PullRequest
0 голосов
/ 27 мая 2020

У меня есть простая игра-головоломка.

Это комбинация нескольких простых игр. Поскольку эти игры меняются во время игры, все создается динамически. У меня проблема с SpawnActor.

Существует класс под названием XGame (AActor), порожденный менеджером уровней (APawn). Он отвечает за создание актеров для этой c 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

все они являются символом AC

Я был бы очень признателен, если бы кто-нибудь мог помочь

1 Ответ

0 голосов
/ 29 мая 2020

Мне удалось заставить его работать правильно, изменив базовый класс Stick, Ball и Circle на AActor. Из-за того, что классы символов автоматически генерируют компонент капсулы. Они сталкивались, и порожденные персонажи каждый раз перемещаются на 68 (радиус перемещения капсулы персонажа по умолчанию равен 34,0).

...