Version: 2020.1
Removed

Network.useProxy

切换到手册
Obsolete public static bool useProxy ;

描述

指示是否需要代理支持,在这种情况下,流量将通过代理服务器中继。

代理服务器是应对服务器及客户端连接问题的 一种解决方案。当用户运行的机器所连接的路由器不具备 NAT 穿透能力, 其在连接方面的选择将受到限制。这样会导致其无法 托管游戏,因为局域网之外的任何玩家都无法与其建立连接。 通过使用代理服务器,该机器可完全具备连接能力, 但额外的代价是所有流量必须通过另一台服务器进行中继。 只要正确设置了代理服务器,不具备 NAT 穿透能力的客户端 可通过代理服务器连接到任何服务器。

Unity Technologies 不提供公开使用的代理服务器, 因此必须自行建立代理服务器方可使用这一功能。当然, 建议使用公共 IP 地址建立代理服务器并 具备足够的带宽。

当作为客户端运行时,只需启用 Network.useProxy 即可。照常使用 Network.Connect() 连接到服务器。所有流量 都将通过代理服务器中继。服务器的外部 IP 和内部 IP 仍可 照常使用。因此,当客户端位于同一网络中时, 可不经过代理直接连接。

当作为服务器运行时,OnServerInitialized(NetworkPlayer) 返回一个 NetworkPlayer 结构,其中包含中继游戏服务器的 IP/端口, 即代理服务器分配给游戏服务器的端口。 其他人可使用该 IP/端口进行连接。当连接到服务器时, 客户端对待该服务器的方式与其他服务器完全相同。 从技术角度讲,客户端不需要知道 游戏服务器是否经过了代理服务器的帮助。

当使用主服务器时,有了代理支持,您不必仅依赖 为该服务器注册的 IP/端口。可将该服务器使用的 代理服务器的 IP 地址和端口填入发送给主服务器的 数据的 comment 字段中。从主服务器接收主机信息的客户端 可查看 comment 字段并了解是否可以 使用该主机的备用 IP/端口。

重要信息:不得对服务器和与之连接的客户端 均使用代理支持。否则,意外情况将不可避免。