为啥 UnrealHeaderTool 在构建 RPC 时会失败

Posted

技术标签:

【中文标题】为啥 UnrealHeaderTool 在构建 RPC 时会失败【英文标题】:Why is UnrealHeaderTool failing when building RPCs为什么 UnrealHeaderTool 在构建 RPC 时会失败 【发布时间】:2021-02-21 20:26:04 【问题描述】:

在我的 pawn 头文件中,我试图声明一个 RPC。以下编译正确:

UFUNCTION( ) void ClientSetPosition(FTransform position);

但这并不能编译:

UFUNCTION( Client ) void ClientSetPosition(FTransform position);

我得到以下错误:

UnrealHeaderTool failed for target 'MultiEditor' (platform: Win64, module info: C:\Users\myself\Documents\Unreal Projects\Multi\Intermediate\Build\Win64\MultiEditor\Development\MultiEditor.uhtmanifest, exit code: OtherCompilationError (5)).

The command ""C:\Program Files\Epic Games\UE_4.21\Engine\Build\BatchFiles\Build.bat" MultiEditor Win64 Development "C:\Users\myself\Documents\Unreal Projects\Multi\Multi.uproject" -WaitMutex -FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command.

对为什么会出现这种情况有什么想法吗?

【问题讨论】:

【参考方案1】:

以下解决了该问题: UFUNCTION(客户端,可靠)

他们必须更新虚幻来需要这个变量。

【讨论】:

始终需要指定可靠/不可靠。 @DevilsD 这不是真的,默认情况下 RPC 过去是不可靠的。事实上,最近确实如此,以至于文档尚未更新。 docs.unrealengine.com/en-US/InteractiveExperiences/Networking/… 如果您的游戏/模拟允许任何类型的插入功能。我会考虑使用代表通知,因为在此 rpc 触发后连接的客户端将永远不会收到它发送的信息(当然这在 100% 的情况下并不重要 - 但只是认为值得指出)。 感谢乔治的提示。如果添加动态复制对象,我会记住这一点。这个特定示例是将客户端控制对象的位置复制到其他客户端。因此它不断发生。

以上是关于为啥 UnrealHeaderTool 在构建 RPC 时会失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Android Studio 将我所有的引用从 R 更改为 android.R?

为啥我的回归系数在我的 R 模型中没有意义?

为啥连接终止

为啥这个静态函数有三个前缀?

为啥mongodb返回地理索引错误?

为啥我无法解析符号“R”? [复制]