虚幻引擎的便捷 ActorComponent UDP 包装器。
对于您的用例来说,这可能不是最明智的包装器,但旨在与具有类似工作流程的 https://github.com/getnamo/SocketIOClient-Unreal 共存。
将内置 Unreal udp 功能包装为具有发送和接收功能的参与者组件 ( UDPComponent )。通过 c++ FUDPNative包装器工作,如果需要,可以将其包含在自定义非参与者组件类中并重新链接。
已确认使用 node.js dgram(请参阅示例 echo 服务器要点进行测试)。
不和谐服务器
选择一个喜欢的演员。将 UDP 组件添加到该参与者。
选择新创建的组件并修改任何默认设置
默认情况下,udp actor 组件将在开始播放时自动打开发送和接收套接字。如果您只想发送,请取消勾选“自动打开接收”;相反,如果您不想发送,请取消选中自动打开发送。
另外,如果您想在自己的时间连接/收听,请取消选中其中一个并通过例如按键事件手动连接
接收 IP 0.0.0.0 将侦听指定端口上的所有连接。
一旦您的发送套接字打开(更准确地准备发送套接字,因为您不会像 TCP 那样在 UDP 中获得回调),请使用 emmit 发送一些数据,由 socket.io 插件提供的 utf8 转换。注意:如果您忘记打开套接字,emit 将在默认设置下自动打开并发出。
如果发出已处理,则返回 true。注意:udp 不可靠,因此这不是另一端收到数据的返回,对于可靠的连接,请考虑 TCP。
打开接收套接字后,您将在OnReceivedBytes
事件上接收数据
您可以通过 socket.io 将其转换为方便的字符串或结构(可选,并且要求您的服务器将数据作为 JSON 字符串发送)。
从 v0.9.5 开始,当您打开发送套接字时,它将生成一个绑定的发送端口,您可以使用该端口侦听接收端的 udp 事件。由于预期行为,这应该有助于 NAT 穿透。
要使用此功能,可以使用“应该打开接收到绑定发送端口” ,这将导致任何打开的接收自动绑定到您的发送 IP 和发送绑定端口。
或者,如果您想手动执行此操作,您可以取消选中“应自动打开接收” ,然后使用自己的设置打开,例如使用绑定端口发送套接字打开事件。
每个版本都包含 socket.io 客户端插件,该插件旨在用于可靠的控制,然后可以使用此 udp 插件通过管道传输网络的实时/最新数据组件。考虑为数据添加时间戳,以便您知道要丢弃/忽略哪些数据包。
开箱即用。
如果您将其用作项目插件,则需要将仅蓝图项目转换为混合项目(bp 和 C++)。请按照以下说明执行此操作:https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
例如,使用“文件”菜单选项通过添加 C++ 文件将项目转换为混合项目。
麻省理工学院许可。
很大程度上受到 https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another 的启发。