C# 在Unity中检查运行时的internet连接
我如何在unity的更新功能中检查internet连接?我想知道用户是否已连接,并基于此禁用游戏的某些功能 似乎以前没有人问过这样的问题,或者如果是,只是在启动功能中检查连接。以下是我目前掌握的代码:C# 在Unity中检查运行时的internet连接,c#,unity3d,C#,Unity3d,我如何在unity的更新功能中检查internet连接?我想知道用户是否已连接,并基于此禁用游戏的某些功能 似乎以前没有人问过这样的问题,或者如果是,只是在启动功能中检查连接。以下是我目前掌握的代码: void Update () { if (Application.internetReachability == NetworkReachability.NotReachable) { Debug.Log ("No internet access"); } els
void Update () {
if (Application.internetReachability == NetworkReachability.NotReachable) {
Debug.Log ("No internet access");
} else {
Debug.Log ("internet connection");
}
}
您需要定期运行
Update
功能
可用于:
using UnityEngine;
public class Timer : MonoBehaviour
{
public float waitTime = 1f;
float timer;
void Update ()
{
timer += Time.deltaTime;
if (timer > waitTime) {
if (Application.internetReachability == NetworkReachability.NotReachable) {
Debug.Log ("No internet access");
} else {
Debug.Log ("internet connection");
}
timer = 0f;
}
}
}
解决方案是正确的,它工作正常,但并没有人强迫你们在游戏的每一帧检查连接。你不必那么做
更好的解决方案是在单击按钮或场景中发生事件时检查连接。Unity的应用程序。internetReachability不是internet检测的最佳解决方案,因为它不是为此目的设计的(如文档中所述) 正确的方法是实现一种称为捕获式门户检测的技术,这是所有主要操作系统用于互联网状态检测的技术。如果实现正确,它甚至可以检测网络何时受到限制(酒店或机场),因为它依赖于已知内容的HTTP请求。因此,它要可靠得多 实施起来并不难。您需要向已知的“检查页面”发出HTTP请求,并检查是否返回了正确的内容
但是,如果您想要一个完整的、随时可用的解决方案,您可以检查我为此目的创建的资产。它还具有事件和自定义编辑器。它不是免费的,但它非常便宜 thanx man的可能副本我已经在使用更新函数中那些链接中提供的函数,但问题是它像启动函数一样只检查一次连接,当我在unity editor中点击play按钮,几秒钟后,我只是禁用了我的计算机的internet访问,我仍然返回相同的结果。我只是关闭了我的xampp,它只会导致一个愚蠢的丢脸错误,无论如何不,因为我的连接在我的计算机上,我使用xampp for db,希望它能显示第二次调试的结果。日志(“internet连接”),但问题是当游戏破坏,我关闭internet时,它仍然显示相同的结果,我如何解决这个问题???简单->,有internet连接,我点击play按钮,它在日志中显示internet连接,现在我从计算机上关闭internet连接,它仍然显示相同的内容,所以,让我们仔细想想。你运行代码,它会检测到互联网在那里。然后断开internet连接,不再运行该功能。您希望它如何在不再次运行该功能的情况下检测断开的internet?