c++ - 如何在 C++ 中覆盖 BlueprintNativeEvent 函数?
问题描述
我想BlueprintNativeEvent
在 C++ 的派生类中实现部分带有标记的函数,而其他部分在派生的蓝图类中实现该函数的部分。
但是,该函数似乎不是一个virtual
函数,所以我不知道如何override
在 C++ 中使用它(但在蓝图中它可以工作)。来自 GameplayAbilitySystem 的示例:
UFUNCTION(BlueprintNativeEvent, Category="Calculation")
float CalculateBaseMagnitude(const FGameplayEffectSpec& Spec) const;
如何在 C++ 的派生类中覆盖它?
解决方案
在编译之前,UnrealHeaderTool会为基类中的a生成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.
}
}
推荐阅读
- sonos - Sonos websocket 无法理解我的 ping 响应
- javascript - 调用 Array.prototype.slice 时,新数组是否具有相同的原型?
- javascript - 状态变化不影响其他元素
- racket - 修复“read-itunes-as-list:需要一个带有 XML 文档的文件作为第一个参数,给定 HTDP 练习 200 的“itunes.xml””
- c++ - 有没有办法根据绘制的内容设置 QImage 分辨率?
- python-3.x - 用#替换字符串中的数字
- android - Admob Unity 横幅无法加载“广告无法加载:0”
- hyperledger-fabric - Hyperledger Fabric 将用户的公钥和私钥存储在哪里?
- tensorflow - 推理过程中损失层做什么?在前向传播过程中要清楚
- python - 将逗号分隔的字符串转换为列表,然后在 Django 模板中显示列表