Version: 2017.3
public uint SendDelay ;

描述

获取或设置从调用 Send() 到发送数据包之前这之间的延时(以毫秒为单位)。在此期间,新消息会合并到队列中的数据包中。默认值:10 ms。

Unity Multiplayer 可将多条消息合并到一个数据包中。这可以提高网络效率,因为每条消息的重复的数据包标头信息会消耗不必要的带宽。SendDelay 获取或设置使用 Send() 函数发送的消息在此期间合并到同一数据包中的延时。数据包的合并还受最大数据包大小限制,数据包的发送受带宽限值的限制。

请考虑以下示例情况:

Unity Multiplayer 游戏大约每毫秒发送一次消息。每条消息大约占数据包大小的 1/3。SendDelay 已设置为 5 ms。

假设游戏的持续时间为 5 ms。当 Unity Multiplayer 收到第一条要发送的消息时,延时就会开始。在接下来的 5 ms 中,还会收到超过 4 条要发送的消息。因为一个数据包可容纳三条消息,所以 Unity Multiplayer 会创建两个数据包,第一个用于包含前三条消息,第二个用于包含后两条消息。延时结束,这两个数据包已发出。Unity Multiplayer 接着等待新的消息,并在接收消息时,开始新的延时。