连接质量

Mirror 在平滑处理较差的网络连接方面做了很多工作。

然而,我们能做的也只有这么多。

Mirror 的 ConnectionQuality 包括三个部分,使其非常容易应用到你的游戏中。

ConnectionQuality.cs

独立的连接质量枚举和启发式方法,如果需要的话可以在 Unity 之外使用。

Mirror 提供以下连接质量级别:

public enum ConnectionQuality : byte
{
    EXCELLENT,  // ideal experience for high level competitors
    GOOD,       // very playable for everyone but high level competitors
    FAIR,       // very noticeable latency, not very enjoyable anymore
    POOR,       // unplayable
    ESTIMATING, // still estimating
}

目前它提供两种启发式方法:

  • Simple(基于 Ping 和 Jitter)

  • Pragmatic(基于快照插值)。

NetworkPingDisplay

这个组件可以添加到 NetworkManager 中,在屏幕右下角显示 Ping 和连接质量指示器。随意根据需要修改此组件,或者创建你自己的组件。

NetworkManager 回调

  • CalculateConnectionQuality() 可以被重写以注入你自己的启发式方法。默认情况下,它使用上述的 Simple 启发式方法。这个方法每隔 connectionQualityInterval 秒调用一次,这个时间间隔也可以在 NetworkManager 中配置。

  • OnConnectionQualityChanged() 可以用于向用户显示警告。默认情况下,它会发出一个日志消息 - 用于调试用户日志等。

最后更新于

这有帮助吗?