SetControlRotation 由于某种原因不起作用

问题描述 投票:0回答:1
APlayerController* controller = UGameplayStatics::GetPlayerController(this->GetWorld(), 0);
FRotator Rotation = Controller->GetControlRotation();
Controller->SetControlRotation(Rotation.Pitch + amount*5, Rotation.Yaw, Rotation.Roll);

错误 C2660,函数不接受 3 个参数

c++ unreal-engine4 unreal-engine5
1个回答
0
投票

SetControlRotation
需要 1 个
FRotator
类型的参数,而不是 3 个单独的旋转分量(俯仰、偏航、滚动)。

这就是你得到的错误的含义(

error C2660, function doesnt accept 3 arguments
)。

您可以通过聚合 3 个组件来创建 1

FRotator
对象来修复此问题,如下所示:

Controller->SetControlRotation(
//--------------------vvvvvvvv--------------------------
                      FRotator(Rotation.Pitch + amount*5, 
                               Rotation.Yaw, 
                               Rotation.Roll));

请注意,虽然

FRotator
由 3 个组件组成,但它与单独给出的 3 个组件不同(从 C++ 的角度来看)。

© www.soinside.com 2019 - 2024. All rights reserved.