我有以下代码可以正常工作,并根据需要将数据发送到服务器:
IEnumerator Start () {
Diffculty d = Diffculty.getInstance ();
int level = d.getDiffculty ();
WWWForm form = new WWWForm();
form.AddField( "highscore", 1000);
form.AddField( "name", stringToEdit);
form.AddField( "level", level);
WWW download = new WWW( url, form );
yield return download;
if((!string.IsNullOrEmpty(download.error))) {
Debug.Log("Error downloading: " + download.error );
} else {
Debug.Log(download.text);
doWindow0 = false;
}
}
但是我现在想要在guiwindow按下按钮时触发此代码,所以请使用以下代码。
IEnumerator senddata(){
Diffculty d = Diffculty.getInstance ();
int level = d.getDiffculty ();
WWWForm form = new WWWForm();
form.AddField( "highscore", 1000);
form.AddField( "name", stringToEdit);
form.AddField( "level", level);
WWW download = new WWW( url, form );
yield return download;
if((!string.IsNullOrEmpty(download.error))) {
Debug.Log("Error downloading: " + download.error );
} else {
Debug.Log(download.text);
doWindow0 = false;
}
}
void DoWindow0(int windowID) {
stringToEdit = GUILayout.TextField (stringToEdit, 25);
if (GUILayout.Button ("Submit Score")) {
senddata();
}
}
void OnGUI() {
//doWindow0 = GUI.Toggle(new Rect(10, 10, 100, 20), doWindow0, "Window 0");
if (doWindow0)
GUI.Window(0, windowRect, DoWindow0, "");
}
然而,当我按下按钮(“提交分数”)时,似乎没有任何事情发生,服务器也没有收到数据
答案 0 :(得分:0)
这是因为您没有调用StartCoroutine(sendData())。调用发送数据只返回循环遍历方法所需的IEnumerator值,而StartCoroutine使用IEnumerator值实际完成方法。