只有协程可以等待另一个协程。由于您需要等待启动的协程(WaitForRequest),因此这意味着您必须将POST转换为协程,并且它无法返回int。
看起来success_fail是成员变量,所以如果暴露给启动POST的人(作为协程),则无论如何都不需要返回它。
public int success_failIEnumerator POST(string username, string passw){ WWWForm form = new WWWForm(); form.AddField("usr", username); form.AddField("pass", passw); WWW www = new WWW(url, form); yield return StartCoroutine(WaitForRequest(www));}private IEnumerator WaitForRequest(WWW www){ yield return www; if (www.error == null) { if(www.text.Contains("user exists")) { success_fail = 2; } else { success_fail=1; } } else { success_fail=0; } }
基本上,如果您希望代码“等待”,则必须是协程。您不能在不阻塞整个引擎的情况下进行等待(没有某种类型的循环攻击)的呼叫。
这个线程提供了一种方法,您可以在需要时从协程返回int,但是POST仍然不能成为阻塞调用…
http://answers.unity3d.com/questions/24640/how-do-i-return-a-value-from-a-
coroutine.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)