利用委托回调简单封装的unity网络请求
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//引用三方Json解析
using LitJson;
public class GameControl : MonoBehaviour {
//声明代理
public delegate void RequestFinish(string json);
//问题的Text
public Text QText;
//名字的Text
public Text AText;
//搜索出来的结果图片
public RawImage AImage;
//结果背景
public GameObject ABG;
//保存三个url
private string yesURL;
private string noURL;
private string nullURL;
// Use this for initialization
void Start () {
StartCoroutine(Request("http://renlifang.msra.cn/Q20/api/gamestart.ashx?alias=WP7&stamp=366",(string json) => {
JsonData jd = JsonMapper.ToObject(json);
string qurl = jd["starturl"].ToString();
StartCoroutine(Request(qurl,RequestQuess));
}));
}
//提问问题的回调
void RequestQuess(string json)
{
JsonData jd = JsonMapper.ToObject(json);
if (jd["step"].ToString() == "1")
{
QText.text = jd["qtext"].ToString();
yesURL = jd["yesurl"].ToString();
noURL = jd["nourl"].ToString();
nullURL = jd["notsureurl"].ToString();
}
else
{
ABG.SetActive(true);
AText.text = "您心里想的是" + jd["guessname"].ToString();
StartCoroutine(RequestImage("http://renlifang.msra.cn/portrait.aspx?id=" + jd["pid"].ToString()));
}
}
IEnumerator RequestImage(string url)
{
WWW www = new WWW(url);
yield return www;
AImage.texture = www.texture;
}
public void YesButton()
{
StartCoroutine(Request(yesURL,RequestQuess));
}
public void NoButton()
{
StartCoroutine(Request(noURL, RequestQuess));
}
public void NullButton()
{
StartCoroutine(Request(nullURL, RequestQuess));
}
IEnumerator Request(string url , RequestFinish finish)
{
WWW www = new WWW(url);
yield return www;
finish(www.text);
}
}