Как переопределить функцию BlueprintNativeEvent в C ++? - PullRequest
0 голосов
/ 21 марта 2019

Я хочу реализовать части функции, отмеченные BlueprintNativeEvent, в производном классе в C ++, в то время как другие реализуют части этой функции в производном классе Blueprint.

Однако эта функция, похоже, не является virtual функцией, поэтому я не знаю, как override это сделать в C ++ (хотя в Blueprint она работает). Пример из GameplayAbilitySystem:

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

Как переопределить это в производном классе в C ++?

1 Ответ

0 голосов
/ 21 марта 2019

Перед компиляцией 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.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...