需求分析
打包发布后的webgl需要使用GET/POST获取到服务器数据,对获取到的服务器数据进行解析
实现方法
此实现方法需要使用UnityWebRequest类(用于与Web服务器通信,处理HTTP与Web服务器通信流程),在脚本中引用 using UnityEngine.Networking;命名空间即可使用UnityWebRequest类。如果获取到的数据类型是json时,需要对json数据进行解析,这里使用LitJSON.dll,获取链接:https://pan.baidu.com/s/1MCr36hQd5PzhXiM6UdqLWQ 提取码:sj5i
代码
IEnumerator GetData()
{
yield return new WaitForSeconds(10);//多久获取一次数据,这里10秒获取一次
UnityWebRequest unityWebRequest = UnityWebRequest.Get("你的接口地址");
unityWebRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
unityWebRequest.downloadHandler = new DownloadHandlerBuffer();
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.isDone)
{
string result = unityWebRequest.downloadHandler.text;
Debug.Log(result);//调试使用,不出错时可删除
//当数据格式为json时
JsonData jsdata = JsonMapper.ToObject(result);//解析获取到的Json数据
Data.name = jsdata["result"]["name"].ToString();//Data为你需要存储解析数据的类,自己命名即可
//当获取到的数据为列表时,可使用双重for循环进行解析,数据如:
/* {
"success": true,
"message": "操作成功!",
"code": 200,
"result": {
"List":{
"1":[{"age":10,"name":null},
{"age":12,"name":null},
{"age":13,"name":null},
],
"2":[{"age":10,"name":null},
{"age":12,"name":null},
{"age":13,"name":null},
],
......
}
}
}*/
//解析方法:
List<int> age = new List<int>(6);//知道数据数量情况下。建议直接声明List大小
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
age.Add(int.Parse(jsdata["result"][i][j]["age"].ToString()));
}
}
}
}