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

我正在统一开发游戏,遇到了无法解决的问题。我正在通过标准WWW对象并使用协程连接到Web服务器,以便执行POST请求。


代码本身可以工作,但是我需要更新一个变量值,并在协程完成后返回该变量,而我无法这样做。


public int POST(string username, string passw)

{

    WWWForm form = new WWWForm();

    form.AddField("usr", username);

    form.AddField("pass", passw);


    WWW www = new WWW(url, form);


    StartCoroutine(WaitForRequest(www));


    //problem is here !

    return success_fail;

}


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;

    }    

}

协程使用相关值更新“ success_fail”的值。但是“返回成功失败”;协程完成之前,POST方法中的代码行会运行,这会导致它返回错误的值。


我尝试使用其他协程,但未成功,假设我也有错误。如何仅在协程完成后才能返回“ success_fail”值?


谢谢。


胡子哥哥
浏览 1957回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP