Unity-仅在协程完成后才需要返回值

Unity-仅在协程完成后才需要返回值,第1张

Unity-仅在协程完成后才需要返回

只有协程可以等待另一个协程。由于您需要等待启动的协程(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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5440833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存