代码之家  ›  专栏  ›  技术社区  ›  deado

由于某些原因,SetControlRotation无法使用虚幻引擎

  •  -2
  • deado  · 技术社区  · 2 年前

    我的代码:

    APlayerController* controller = UGameplayStatics::GetPlayerController(this->GetWorld(), 0);
    FRotator Rotation = Controller->GetControlRotation();
    Controller->SetControlRotation(Rotation.Pitch + amount*5, Rotation.Yaw, Rotation.Roll);
    

    我得到的错误:

    error C2660, function doesnt accept 3 arguments
    

    这是什么原因?

    1 回复  |  直到 2 年前
        1
  •  0
  •   wohlstad    2 年前

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

    这就是你得到的错误的含义( error C2660, function doesnt accept 3 arguments ).

    你可以通过修复 构建 F转子 对象 从3个组件中,如下所示:

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

    请注意,尽管 F转子 是由3个组成部分组成的,(从C++的角度来看)它与单独给出的三个组成部分不同。