Esempio n. 1
0
    IEnumerator startLogics()
    {
        while (true)
        {
            switch (curState)
            {
            case WAIT_USER_INPUT:
                while (!touchScreenKeyboard.done)
                {
                    yield return(null);
                }
                //yield return new WaitForSeconds(2.0f);
                messageToSend = ist.getText();
                ist.clearText();
                lastState = curState;
                curState  = WAIT_SERVER_RESPONSE;
                break;

            case WAIT_SERVER_RESPONSE:
                WWWForm form = new WWWForm();
                form.AddField("message", messageToSend);
                UnityWebRequest www = UnityWebRequest.Post(postUrl, form);
                yield return(www.Send());

                if (www.isError)
                {
                    Debug.Log("Post error!");
                    lastState = curState;
                    curState  = ERROR;
                }
                else
                {
                    messageFromServer = www.downloadHandler.text;
                    Debug.Log("Receive Server Text: " + messageFromServer);
                    lastState = curState;
                    curState  = TALKING;
                }
                break;

            case TALKING:
                Debug.Log("Talking about message: " + messageFromServer);
                yield return(new WaitForSeconds(5.0f));

                lastState = curState;
                curState  = WAIT_USER_INPUT;
                break;

            case ERROR:
                yield return(new WaitForSeconds(10.0f));

                Debug.Log("Error occurs!");
                lastState = curState;
                curState  = ERROR;
                break;
            }
        }
    }