Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Unity中检查运行时的internet连接_C#_Unity3d - Fatal编程技术网

C# 在Unity中检查运行时的internet连接

C# 在Unity中检查运行时的internet连接,c#,unity3d,C#,Unity3d,我如何在unity的更新功能中检查internet连接?我想知道用户是否已连接,并基于此禁用游戏的某些功能 似乎以前没有人问过这样的问题,或者如果是,只是在启动功能中检查连接。以下是我目前掌握的代码: void Update () { if (Application.internetReachability == NetworkReachability.NotReachable) { Debug.Log ("No internet access"); } els

我如何在unity的更新功能中检查internet连接?我想知道用户是否已连接,并基于此禁用游戏的某些功能

似乎以前没有人问过这样的问题,或者如果是,只是在启动功能中检查连接。以下是我目前掌握的代码:

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?