Unity无法从本地网络上的服务器检索文件,连接失败?

时间:2019-02-11 17:29:04

标签: c# unity3d web request

我正在设置一个多人游戏,需要从局域网中的服务器上保存和加载Unity3D游戏中的数据。这些数据将是帐户信息,分数,解锁等。几乎所有文本数据。

对于我的网络来说,它是本地的,主要是为了在全球范围内或全球范围内对其进行测试。

问题是我无法从Unity应用程序播放模式中访问需要从本地服务器创建或下载的文件。我是在编辑器中执行此操作的,不要相信会有所不同。

我的设置是这样的:一台运行Unity的笔记本电脑-该笔记本电脑暂时充当服务器,并具有一个共享目录,其中包含所有数据文本文件。

在我的代码中,我将URL链接到服务器(笔记本电脑)上的目录。

public static string path = "file://192.168.1.51/PINION/GAMEDATA/testing/userData.txt";

该IP是静态的,因此它不会更改。是的,我知道这只能在本地使用,这就是我现在正在尝试做的事情。

在Visual Studio中,如果我控制单击URL,它将在记事本中打开用户数据文件,因此我知道链接是好的。但是,当我使用下面的代码在Unity中运行它时,出现“无法连接到目标主机”错误。

IEnumerator LoadingData(){string url = ServerMaster.path;

    UnityWebRequest request = UnityWebRequest.Get(UnityWebRequest.EscapeURL(url));

    yield return request.SendWebRequest();

    string[] pages = url.Split('/');
    int page = pages.Length - 1;

    if (request.isNetworkError)
    {
        Debug.Log("Network Error occurred. " + request.error); StopAllCoroutines();
    }
    else if (request.isHttpError)
    {
        Debug.Log("HTTP Error occurred. " + request.error); StopAllCoroutines();
    }
    else
    {
        print("Download successful. " + pages[page] + ":\nReceived: " + request.downloadHandler.text);
        print(request.downloadHandler.data.Length);
    }
}

然后我运行这段代码,效果很好,告诉我问题出在我的LAN代码上。

IEnumerator LoadingData()
{
    string testURL = "https://www.google.com/";

    using (UnityWebRequest www = UnityWebRequest.Get(testURL))
    {
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Get Request Completed!");
        }
    }
}

这很好,而我指向本地服务器的其他代码连续失败。我是Unity的网络部分的新手,所以我很难解决这个问题。

0 个答案:

没有答案