C# Unity3d WWWForm仅从开始()起工作
我有以下代码,可以正常工作,并根据需要将数据发送到服务器:C# Unity3d WWWForm仅从开始()起工作,c#,unity3d,C#,Unity3d,我有以下代码,可以正常工作,并根据需要将数据发送到服务器: IEnumerator Start () { Diffculty d = Diffculty.getInstance (); int level = d.getDiffculty (); WWWForm form = new WWWForm(); form.AddField( "highscore", 1000); form.AddField( "name"
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;
}
}
然而,我现在希望这段代码在按下GUI窗口中的按钮时被触发,所以有下面的代码
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, "");
}
但是,当我按下按钮(“提交分数”)时,似乎什么都没有发生,服务器也没有收到数据,这是因为您没有调用Start例程(sendData())。调用send data as只返回在方法中循环所需的IEnumerator值,其中as Start例程使用IEnumerator值实际完成方法