#networking #unity3d
#сеть #unity3d
Вопрос:
У меня есть код для использования UnityWebRequest для вызова веб-сервера. Отладка показала, что он даже никогда не вызывает сервер и всегда возвращает 0 байт. Я подключил отладчик к своему серверу и вижу, что он не вызывается.
Даже пытался позвонить в Google и все равно получил пустой результат. Эти тесты были выполнены из редактора Unity.
Есть ли что-то, что мне нужно включить, прежде чем я смогу использовать сетевые библиотеки?
void Awake() {
StartCoroutine("CallWebserverCR");
}
IEnumerator CallWebserverCR()
{
UnityWebRequest www = UnityWebRequest.Get("http://www.google.com");
yield return www.Send();
if (www.isError)
{
Debug.Log(www.error);
}
else
{
Debug.Log(www.downloadHandler.text);
byte[] results = www.downloadHandler.data;
}
}
Комментарии:
1. Однако использование этого в сопрограмме работает:
WWW www = new WWW(server usersUrl); yield return www; if (www.error != null) { Debug.Log(www.error); } else { Debug.Log(www.text); }
Ответ №1:
Единственное различие, которое я вижу между вашим кодом и примером Unity, заключается в том, что у них есть оператор «using»:
IEnumerator GetText() {
using(UnityWebRequest www = UnityWebRequest.Get("http://www.my-server.com")) {
yield return www.Send();
if(www.isError) {
Debug.Log(www.error);
}
else {
// Show results as text
Debug.Log(www.downloadHandler.text);
// Or retrieve results as binary data
byte[] results = www.downloadHandler.data;
}
}
}
Комментарии:
1. Спасибо за ваш ответ. Я чувствую себя настоящим инструментом, но по какой-то причине все только начало работать, когда я переключился с WWW на UnityWebRequest, запишите этот вопрос как PEBKAC