[Unity Mirror] Network Profiler

81 篇文章 30 订阅

英文原文:

https://mirror-networking.gitbook.io/docs/components/network-profiler

  Mirror Profiler 是 Mirror Pro 套装的一部分。在撰写本文时,我们的 GitHub 赞助商可以访问它。

在这里插入图片描述


Installation

  1. 确保您拥有最新版本的 Mirror。
  2. 如果您还没有,请成为 GitHub 赞助商。
  3. 访问 Mirror Networking Discord。在信息频道中,您将学习如何加入 github_sponsors 频道​​。
  4. 在 github_sponsors 频道​​中,固定消息将指导您如何下载分析器。
  5. 在您的项目中安装unity package。

用法

  1. 在 Unity 菜单中,单击打开Window -> Analysis -> Mirror Network Profiler。探查器视图将出现
  2. 您可以将探查器停靠在您想要的任何位置
  3. 在编辑器中开始你的游戏
  4. 在分析器中按“Record”
  5. 作为主机、客户端或服务器开始您的游戏
  6. 在顶部的图表将显示传入和传出的消息
  7. 单击图表以选择帧
  8. 分析器将显示有关该帧中发送和接收的所有消息的信息

目前,消息显示以下字段:

  • In/Out:消息是被接收(in)还是发送(out)
  • Name:消息的短名称,如果消息是 [Command]、[ClientRpc]、[TargetRpc] 或 [TargetEvent],则显示方法的名称,否则显示消息类的名称。
  • Bytes:消息的大小(以字节为单位)
  • Count:在输出消息的情况下,这将包含消息发送到的客户端数量。
  • Total Bytes:消息大小乘以消息发送到的客户端数量(字节 * 计数)
  • Channel:用于发送消息的频道。在撰写本文时,我们无法确定入站消息的通道,因此它显示为 -1。这将在未来的版本中得到改进。传输可以将通道用于多种用途,例如可靠、不可靠、加密、压缩等。

优化带宽

  在大多数传输中,总带宽由 Count 列控制。这是因为每条消息都打包在 TCP 或 UDP 帧中,它们具有较大的包头。

  • 如果您在同一帧中发送多个 [Command],如果有意义,请考虑将它们合并为单个 [Command] 调用
  • 如果您在特定消息上看到较大的 Count 数字,请考虑将 NetworkProximityChecker 添加到您的对象,以便它仅对附近的玩家而不是整个世界可见。根据您的游戏,这可以显着减少计数(和总字节数)。
  • 如果您每帧都发送一条消息,请考虑更改您的逻辑,以便仅在情况发生变化时发送消息,或者使用计时器。
  • 考虑使用 SyncToOwner 功能,以便在私人信息(例如库存)发生变化时只有所有者才能收到消息。这可以根据您的游戏显着减少计数。
  • 如果您有很多同步数据的 [ClientRpc] 调用,请考虑改用 [SyncVar] 和同步列表。它们可以减少消息的数量,因为它们仅在更改时发送增量,而且它们被批处理在一起,因此数百个变量可以与单个消息同步。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值