Unreal Engine 蓝图中 FindPlayerStart 的 C++ 等价物是什么
What is the C++ Equivalent of FindPlayerStart in Unreal Engine Blueprints
Unreal Engine 蓝图中 FindPlayerStart 的 C++ 等价物是什么?
GameModeBase上的函数不是虚函数;即使它可以在蓝图中被覆盖。
许多 4.3 左右的旧示例似乎表明有一个 FindPlayerStart_Implementation 函数,但我在 4.19 中找不到它。
如何实现与覆盖 FindPlayerStart 并在蓝图中返回我自己的 PlayerStart Actor 相同的行为?
Blueprint中的'override'实际上是一个由基础C++发布的蓝图事件class。
UFUNCTION(BlueprintNativeEvent, Category="Game")
class AActor* FindPlayerStart( AController* Player, const FString& IncomingName = TEXT("") );
因此,您不直接在 C++ 中进行子class 和扩展。
如果您想调整 C++ 代码中的行为,请在您的游戏模式中实现一个蓝图函数 class -- 标记为 BlueprintPure
的 UFUNCTION
以便您可以将其添加到蓝图作为一个节点。
// .h
UFUNCTION(BlueprintPure, Category=Game, meta=(DisplayName="CustomPlayerStart"))
AActor* CustomPlayerStartLogic(AController* Player);
// .cpp
AActor* MyCustomGameMode::CustomPlayerStartLogic(AController* Player)
{
/// your logic here
return ThePlayerActor;
}
然后在游戏模式蓝图中使用该新节点覆盖游戏模式的 FindPlayerStart "function" -- 只要它 return 是 AActor*
你就可以通过它到蓝图覆盖的 return 节点。在这个例子中,我没有费心从被覆盖的函数中获取字符串输入,但如果您的逻辑需要它,您可以向函数添加一个 const FString&
参数并将其连接到原始节点。
我通过某种方式找到了答案 Unreal Engine 论坛发起人:here
Unreal Engine 蓝图中 FindPlayerStart 的 C++ 等价物是什么?
GameModeBase上的函数不是虚函数;即使它可以在蓝图中被覆盖。
许多 4.3 左右的旧示例似乎表明有一个 FindPlayerStart_Implementation 函数,但我在 4.19 中找不到它。
如何实现与覆盖 FindPlayerStart 并在蓝图中返回我自己的 PlayerStart Actor 相同的行为?
Blueprint中的'override'实际上是一个由基础C++发布的蓝图事件class。
UFUNCTION(BlueprintNativeEvent, Category="Game")
class AActor* FindPlayerStart( AController* Player, const FString& IncomingName = TEXT("") );
因此,您不直接在 C++ 中进行子class 和扩展。
如果您想调整 C++ 代码中的行为,请在您的游戏模式中实现一个蓝图函数 class -- 标记为 BlueprintPure
的 UFUNCTION
以便您可以将其添加到蓝图作为一个节点。
// .h
UFUNCTION(BlueprintPure, Category=Game, meta=(DisplayName="CustomPlayerStart"))
AActor* CustomPlayerStartLogic(AController* Player);
// .cpp
AActor* MyCustomGameMode::CustomPlayerStartLogic(AController* Player)
{
/// your logic here
return ThePlayerActor;
}
然后在游戏模式蓝图中使用该新节点覆盖游戏模式的 FindPlayerStart "function" -- 只要它 return 是 AActor*
你就可以通过它到蓝图覆盖的 return 节点。在这个例子中,我没有费心从被覆盖的函数中获取字符串输入,但如果您的逻辑需要它,您可以向函数添加一个 const FString&
参数并将其连接到原始节点。
我通过某种方式找到了答案 Unreal Engine 论坛发起人:here