【问题标题】:How to override a BlueprintNativeEvent function in C++?如何在 C++ 中覆盖 BlueprintNativeEvent 函数?
【发布时间】:2019-08-11 19:47:37
【问题描述】:

我想在 C++ 的派生类中实现标有 BlueprintNativeEvent 的函数的一部分,而其他人在派生的蓝图类中实现该函数的一部分。

但是,该函数似乎不是 virtual 函数,所以我不知道如何在 C++ 中 override 它(但在蓝图中它可以工作)。来自 GameplayAbilitySystem 的示例:

UFUNCTION(BlueprintNativeEvent, Category="Calculation")
float CalculateBaseMagnitude(const FGameplayEffectSpec& Spec) const;

如何在 C++ 的派生类中重写它?

【问题讨论】:

    标签: c++ polymorphism unreal-engine4 unreal-blueprint


    【解决方案1】:

    在编译之前,UnrealHeaderTool 为基类中的BlueprintNativeEvent 生成virtual 函数。上面的示例如下所示:

    virtual float CalculateBaseMagnitude_Implementation(const FGameplayEffectSpec& Spec) const;
    

    所以在派生的 C++ 类中,像往常一样在 C++ 中覆盖(并实现)该函数:

    class PROJECT_API UGMMCCustom : public UGameplayModMagnitudeCalculation
    {
        float CalculateBaseMagnitude_Implementation(const FGameplayEffectSpec& Spec) const override
        {
            return {}; // Add your custom implementation in the cpp file.
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多