我想在C ++的派生类中实现标有BlueprintNativeEvent
的函数的一部分,而其他人则在派生的Blueprint类中实现该函数的部分。
但是,该函数似乎不是virtual
函数,因此我不知道如何在C ++中override
使用它(尽管在Blueprint中它可以工作)。来自GameplayAbilitySystem的示例:
UFUNCTION(BlueprintNativeEvent, Category="Calculation")
float CalculateBaseMagnitude(const FGameplayEffectSpec& Spec) const;
如何在C ++的派生类中覆盖它?
答案 0 :(得分:0)
在编译之前,UnrealHeaderTool为基类中的virtual
生成BlueprintNativeEvent
函数。上面的示例如下:
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.
}
}