Переопределение в Blueprint на самом деле является событием, которое публикуется базовым классом C ++.
UFUNCTION(BlueprintNativeEvent, Category="Game")
class AActor* FindPlayerStart( AController* Player, const FString& IncomingName = TEXT("") );
Итак, вы не наследуете и не расширяете непосредственно в C ++.
Если вы хотите настроить поведение в коде C ++, внедрите в свой игровой режим функцию Blueprint - UFUNCTION
, помеченную как BlueprintPure
, чтобы вы могли добавить ее в план в качестве узла.
// .h
UFUNCTION(BlueprintPure, Category=Game, meta=(DisplayName="CustomPlayerStart"))
AActor* CustomPlayerStartLogic(AController* Player);
// .cpp
AActor* MyCustomGameMode::CustomPlayerStartLogic(AController* Player)
{
/// your logic here
return ThePlayerActor;
}
Затем используйте этот новый узел в проекте вашего игрового режима в переопределении «функции» FindPlayerStart в игровом режиме - пока он возвращает AActor*
, вы можете передать его в узел возврата переопределения проекта. Я не потрудился взять строковый ввод из переопределенной функции в этом примере, но если ваша логика требует этого, вы можете добавить аргумент const FString&
к функции и подключить его к исходному узлу.
См. это сообщение UnrealEngine.com