【问题标题】:How to use Unity MLAPI to do high frequency broadcasting?如何使用 Unity MLAPI 做高频广播?
【发布时间】:2023-04-02 12:05:02
【问题描述】:

我的 Unity 项目正在使用 MLAPI 框架(UNet Transport)。我有一个服务器和 3 个客户端。服务器需要每帧向所有客户端发送 RPC 消息。每个客户端的数据流约为 2KB/帧。我的项目以 60FPS 运行。消息的传递和顺序不是必需的。

但是,服务器在运行时会弹出一些警告,例如“没有可用的消息事件”,然后所有连接的客户端都会自动断开连接。也许问题是广播频率太高,消息太大。但我真的很需要这些。

对 NetworkConfig 设置有什么建议吗?任何建议表示赞赏。

非常感谢!

更新: 我的项目正在使用动作捕捉系统,只有服务器可以接收动作数据。所以服务器需要将它广播给其他客户端。这就是为什么我需要每帧都这样做。

【问题讨论】:

  • 为什么需要每帧发送一条消息?不知何故,这听起来不对;)
  • @derHugo 我的项目正在使用动作捕捉系统,但是只有服务器可以接收动作数据。服务器需要将运动数据广播给所有其他客户端。这就是为什么我需要每帧都这样做。
  • 不,那不是真的...我很确定您的用户不会关心运动是否与 60 FPS 或 20 FPS 完全同步...您可能应该使用物理系统并仅每 0.2 秒发送一次更新,并在接收器处插入(例如 Lerp)
  • @derHugo 感谢您的重播。是的,这是一个解决方案。但我的项目不是传统游戏,它大部分时间都专注于身体运动。 (把它想象成一个舞蹈表演,不允许有脚滑之类的缺陷)所以它需要相当高的运动精度。我只是想试试如果我能做得更好:)

标签: unity3d unity3d-unet


【解决方案1】:

我尝试了 NetworkConfig 的不同设置,尤其是 MaxReceiveEventsPerTickRate,现在效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2021-08-02
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-06-02
    • 2022-01-27
    相关资源
    最近更新 更多