Unreal 4 非法引用非静态成员

Unreal 4 illegal reference to non-static member

我试图从一个单独的 class 访问一个变量,但出现错误。

    if (bSprinting){

        UPlayerPawnMovementComponent::movementSpeedMultiplier = 500.0f;
}

错误来自 movementSpeedMultiplier,当我将鼠标悬停在上面时它说:非静态引用必须相对于特定对象。

有问题的变量是这里的这个:

public:
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;

float movementSpeedMultiplier = 150.0f;

我知道这行不通,我完全不知道如何使变量在两个 classes 中都可编辑。

提前致谢

了解 static members
您的问题的略读版本可能如下所示:

struct A{
   float movementSpeedMultiplier;
};

int main(){
  //error: invalid use of non-static data member ‘A::movementSpeedMultiplier’
  A::movementSpeedMultiplier = 500.0f;
} 

将数据成员设置为静态,将允许您在不实例化的情况下访问该成员。

struct A{
   static float movementSpeedMultiplier;
};
float A::movementSpeedMultiplier;

int main(){

  //compiles
  A::movementSpeedMultiplier = 500.0f;
}