2013-03-25 4 views
-1

나는 웹 서비스에 값을 게시와 같은 웹 서비스에서 응답을 받고 난 Unity3dWWWForm를 사용 Unity3d의 www.progress는 아이폰 OS

을 생각하고 작동하지. 이제는 응답이 완전히로드되지 않을 때까지 기다리고 싶습니다. 그 경우

나는 yield www;을 사용하고 있지만 올바르게 작동하지 않습니다. 그 후 나는 내 Unity3d 플레이어에서 일하고 있지만 아이폰이나 아이 패드에서 작동하지 않습니다 www.progress

을 발견했다.

EDIT1 : 자바 스크립트를 사용하고 있습니다.

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); 
} 

답변

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로 부른다. 일부 자산을 다운로드, 그것은 단지 0을 반환한다 직접 반환 대신에이 코드를 시도 할 수 있습니다

yield StartCoroutine(PostMyForm()); 
+0

응답이로드 될 때까지 스레드를 중지하고 싶습니다. 너는 이제 이걸 대체 해? – Yashesh

+0

코 루틴이 가장 좋습니다. StartCoroutine (YourPostMethod())를 호출하여 javascript가 실제로 동시 로테이션을 사용하는지 확인하십시오. 그런 다음 완료 될 때까지 기다리는 동안 사용자를 차단하는 데 사용할 수 있습니다 (진행률이 작동하지 않아도 완료되거나 실패 할 수 있습니다). – peterept

+0

더 설명 할 수 있습니까? – Yashesh

0
while (!www.isDone) 
{ 
    yield return www; 
} 

, 진행 : 당신이 공동 루틴에 이미있는 경우

StartCoroutine(PostMyForm()); 

또는, 웹 서비스에 액세스하려고하면 1입니다.

+0

위안을 받겠습니다 위의 코드는 작동하지 않습니다 그래서 자바 스크립트를 사용하고 있습니다. – Yashesh