Unity не может получить файлы с сервера в локальной сети, соединение не установлено? - PullRequest
0 голосов
/ 11 февраля 2019

Я настраиваю многопользовательскую игру, в которой мне нужно сохранять и загружать данные внутри игры 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);
    }
}

Затем я запускаю этот бит кода, который работает нормально, который говорит мне, что проблема должнабыть с моим кодом локальной сети.

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, поэтому мне сложно понять это.

...