C# Unity中的异步请求
我无法在Unity 4.6 C#中发出异步请求。 我一直在尝试中的WebAsync类,但不知道如何从结果中获取响应数据(我希望是json字符串)C# Unity中的异步请求,c#,rest,asynchronous,unity3d,C#,Rest,Asynchronous,Unity3d,我无法在Unity 4.6 C#中发出异步请求。 我一直在尝试中的WebAsync类,但不知道如何从结果中获取响应数据(我希望是json字符串) 如果您能回答这个问题,我们将不胜感激,或者不使用WebAsync的其他方法也可以。您真的需要在其他线程中执行此过程吗?如果不重要,您可以使用Unity WWW类:如果在协同程序中使用它,它仍然是异步的(额外的好处是更简单,您可以使用Unity API,这在其他线程中是不可用的) 我刚刚也找到了WWW,想知道它是否真的异步工作——因为我马上就让它运行起来
如果您能回答这个问题,我们将不胜感激,或者不使用WebAsync的其他方法也可以。您真的需要在其他线程中执行此过程吗?如果不重要,您可以使用Unity WWW类:如果在协同程序中使用它,它仍然是异步的(额外的好处是更简单,您可以使用Unity API,这在其他线程中是不可用的)
我刚刚也找到了WWW,想知道它是否真的异步工作——因为我马上就让它运行起来了。是的,我肯定需要在另一个线程上调用它,否则它会阻塞我假设的UI。我的例子是异步-协同路由保证了这一点。它只是在同一个线程中运行。Unity中的多线程功能很弱-您不能从另一个线程调用任何Unity方法。只要它不阻塞UI,就可以了。协同程序不是多线程。在提出API请求时,我在Android上遇到了痛苦的延迟。
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);
}
}