虚幻引擎蓝图中FindPlayerStart的C ++等价物是什么?
GameModeBase上的功能不是虚拟的;即使它可以在蓝图中被覆盖。
大约4.3的大量旧例子似乎表明有一个FindPlayerStart_Implementation函数,但我无法在4.19中找到它。
如何实现与覆盖FindPlayerStart并在蓝图中返回我自己的PlayerStart Actor相同的行为?
答案 0 :(得分:0)
'覆盖'在Blueprint中实际上是一个蓝图事件,由基础C ++类发布。
UFUNCTION(BlueprintNativeEvent, Category="Game")
class AActor* FindPlayerStart( AController* Player, const FString& IncomingName = TEXT("") );
因此,您不必直接在C ++中进行子类化和扩展。
如果要调整C ++代码中的行为,请在游戏模式类中实现蓝图功能 - 标记为UFUNCTION
的{{1}},以便将其作为节点添加到蓝图中。
BlueprintPure
然后在游戏模式的蓝图中使用该新节点,覆盖游戏模式的FindPlayerStart"功能" - 只要它返回// .h
UFUNCTION(BlueprintPure, Category=Game, meta=(DisplayName="CustomPlayerStart"))
AActor* CustomPlayerStartLogic(AController* Player);
// .cpp
AActor* MyCustomGameMode::CustomPlayerStartLogic(AController* Player)
{
/// your logic here
return ThePlayerActor;
}
,您就可以将其传递给蓝图覆盖的返回节点。在本例中我没有从被覆盖的函数中获取字符串输入,但如果您的逻辑需要它,您可以向函数添加AActor*
参数并将其连接到原始节点。
答案 1 :(得分:0)
我通过一个虚幻的引擎论坛启动器找到了我的答案:here