Unreal Engine 4 ограничивает вращение - PullRequest
0 голосов
/ 15 марта 2020

В Unreal 4 я пытаюсь создать обработку для пешки космического корабля, но застрял в ограничениях оси на осях Roll и Pitch (моя пешка может вращаться только на угол от -90 до 90 в Pitch и Yaw (оси y и x). Я попытался AddControllerYawInput (), AddControllerPitchInput (), GetController () -> SetControlRotation () и т. Д. c ..

Все это, кажется, застряло на -90, 90 ограничений. Почему это? Что такое блокировка? Это потому, что этот метод обновляет моего актера в мировом пространстве?

Метод, отвечающий за вращение:

void AMyPawn::RotateRightHorizontal(float Amount)
{

    FRotator actorRotation = GetControlRotation();

    FQuat rotationDelta = FQuat::MakeFromEuler(FVector(Amount, 0.f, 0.f));
    FQuat newRotation = actorRotation.Quaternion() * FQuat::MakeFromEuler(FVector(Amount, 0.f, 0.f));
    newRotation.Normalize();


    GetController()->SetControlRotation(newRotation.Rotator()); // works only in angle 90 to -90 
    GetController()->AddActorLocalRotation(rotationDelta); // pruduce error

    //AddControllerYawInput(Amount); // works only in angle 90 to -90 

}

Я также пробовал GetController () -> AddActorLocalRotation (), но это приводит к ошибке :

Error (active)  E0265   function "AController::AddActorLocalRotation(const FQuat &DeltaRotation, bool bSweep = false, FHitResult *OutSweepHitResult = (FHitResult *)nullptr, ETeleportType Teleport = ETeleportType::None)" (declared at line 390 of "D:\Epic Games\games\UE_4.24\Engine\Source\Runtime\Engine\Classes\GameFramework\Controller.h") is inaccessible MyProject   D:\myWork\PixelArtGame\MyProject\Source\MyProject\MyPawn.cpp    92  

Я что-то не так понимаю или что происходит? Или как добиться "свободы" вращения по всем осям?

Спасибо за ответы.

...