-1

我正在向 Web 服务发布值并从同一个 Web 服务获得响应,我是

Unity3d中使用WWWForm。现在我想等到响应没有完全加载。为了那个原因

我用过yield www;,但不能正常工作。之后我发现www.progress

它在我的Unity3d播放器中工作,但在 iPhone 或 iPad 中不工作。

EDIT1:我正在使用 Javascript。

EDIT2:我的代码:

function getSettingsValues(){


    var strResponse;

    userID = PlayerPrefs.GetString("userid");
    arrLevels.Clear();

    print("First");
    var url = "http://WEBSERVICE";

    var form = new WWWForm();

    form.AddField( "userid",userID);

    var www = new WWW( url, form );

    yield www;

    if (www.error == null)
    {   
        strResponse = www.text;
    }


    print("Response "+strResponse); 
}
4

2 回答 2

1

您的代码应如下所示:

function PostMyForm()
{
    var form:WWWForm = new WWWForm();
    // todo: add form variables
    var www:WWW = new WWW(url, form);
    yield www;
    // todo: parse response
}

然后用 StartCorotuine 调用它。

StartCoroutine(PostMyForm());

或者,如果您已经在协同程序中:

yield StartCoroutine(PostMyForm());
于 2013-03-25T06:35:51.413 回答
0
while (!www.isDone)
{
    yield return www;
}

你可以试试这个代码而不是直接返回,进度是下载一些资产,当你尝试访问网络服务时它只返回 0 或 1。

于 2013-03-25T06:39:19.440 回答