如何统一检查更新功能内的互联网连接?我想知道用户是否已连接,并且基于此仅禁用我游戏的某些功能。
似乎之前没有问过像这样的问题,或者如果是,它只是检查启动功能中的连接。这是我到目前为止的代码:
void Update () {
if (Application.internetReachability == NetworkReachability.NotReachable) {
Debug.Log ("No internet access");
} else {
Debug.Log ("internet connection");
}
}
答案 0 :(得分:2)
@mjwills解决方案是对的,它运行正常,但没有人强迫您检查游戏的每一帧的连接。你不必这样做。
更好的解决方案是在单击按钮或场景中发生事件时检查连接。
答案 1 :(得分:2)
Unity的Application.internetReachability并不是用于Internet检测的最佳解决方案,因为它不是为此目的而设计的(如文档中所述)。
正确的方法是实施一种称为“强制门户检测”的技术,这是所有主要OS对其互联网状态检测所使用的技术。如果实施正确,它甚至可以检测网络何时受到限制(酒店或机场),因为它依赖于已知内容的HTTP请求。因此,它要可靠得多。
实现起来并不难。您需要向已知的“检查页面”发出HTTP请求,并检查是否返回了正确的内容。
但是,如果您想要一个完整的,随时可用的解决方案,则可以检查我为此目的创建的资产Eazy NetChecker。它还具有事件和自定义编辑器。它不是免费的,但超级便宜!