2014-12-05 2 views
0

Я не смог выполнить асинхронные запросы в Unity 4.6 C#. Я тестировал класс WebAsync от http://wiki.unity3d.com/index.php/WebAsync, но не знаю, как получить результаты ответа (я ожидаю строку json) из результата.Асинхронные запросы в Unity

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

ответ

-3

Вам действительно нужен этот процесс в другом потоке? Если это не критично, вы можете использовать Unity WWW-класс: http://docs.unity3d.com/ScriptReference/WWW.html Он по-прежнему асинхронен, если используется в сопрограмме coroutine (с добавленной премией намного проще, и вы можете использовать Unity API - недоступны в других потоках).

void Start(){ 
    StartCoroutine(AskServerSomething()); 
} 

IEnumerator AskServerSomething() { 
    WWW www = new WWW("http://stackoverflow.com/"); 
    yield return www;  
    if(www.error == null){ 
     print("success: " + www.text); 
    } else { 
     print("something wrong: " + www.text); 
    } 
} 
+0

Я только что нашел WWW и задавался вопросом, действительно ли это работает async - потому что я сразу же его запустил. И да, я определенно должен назвать это в другом потоке, иначе он заблокировал бы пользовательский интерфейс, который я предполагаю. – Jonny

+0

Мой пример - асинхронный - coroutine гарантирует это. Это просто запускается в той же теме. Многопоточность в Unity слаба - вы не можете вызывать любые методы Unity из другого потока. – izeed

+0

Пока он не блокирует пользовательский интерфейс, все должно быть в порядке. – Jonny

Смежные вопросы