本文由 @EGWriket出品,转载请注明出处。
http://blog.csdn.net/egwriket/article/details/53179400
环境
软件:untiy5.0.2f1
界面
使用自带的UGUI,主要是输入框和登录按钮
UI:
连接网络
代码
新建LoginEvent脚本
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
//处理json引用
//using LitJson;
public class LoginEvent : MonoBehaviour
{
public InputField Inp_Username;
public InputField Inp_Password;
public string url = "http://172.18.6.122:8080/sc/soa";
登录
public void ToLogin()
{//UGUI控件事件不能绑定IEnumerator方法
this.StartCoroutine(this.Login());
}
public IEnumerator Login()
{
WWWForm sum = new WWWForm();
sum.AddField("fun", "tologin");
sum.AddField("p1", Inp_Username.text);
sum.AddField("p2", Inp_Password.text);
WWW ww2 = new WWW(url, sum);
yield return ww2;
//查看数据
Debug.Log(ww2.text);
}
}
绑定事件
1.新建一个空对象,改名为Event
2.把脚本LoginEvent绑定Event
3.把两个InputField控件拖进Inspector界面的LoginEvent(Script)下
4.选择ButtonLogin这个Button控件
5.到Inspector界面找到Button(Script)的On Click()底下的+
6.把Event拖进None
7.点击No Function选择底下的LoginEvent
8.选择ToLogin
处理返回的json数据
处理json要有专门的库,即LitJson.dll,链接:http://pan.baidu.com/s/1kUZfa8B 密码:t2yx
放在Asset的PlugIns文件夹下,记得using LitJson;
代码
接返回数据
//假如返回的数据json格式是这样的话:{"status":"200","rows":"1","rs":[{"result":"1"}]}
string a = ww2.text;
//转成json格式,需要下载dll
JsonData jd = JsonMapper.ToObject(a);
Debug.Log("status = " + (string)jd["status"]);
JsonData jdItems = jd["rs"];
//for (int i = 0; i < jdItems.Count; i++)
//{
// Debug.Log("result= " + jdItems[i]["result"]);
//}
Debug.Log("result= " + jd["rs"][0]["result"]);
//连接成功
if ((string)jd["status"] == "200")
{//没有这个账号
if ((string)jdItems[0]["result"] == "0")
{
Debug.Log("没有这个用户");
}//有这个账号
else
{
Connect.User = Inp_Username.text;
Application.LoadLevel("ChoseMenu2");
}
}//连接服务器失败
else
{
Debug.Log("连接服务器错误");
}
}
运行
1.先在浏览器输入url,看返回什么结果
2.运行,输入用户名,密码
3.看调试
4.随便说说
返回是的json字符串才能用
接了个untiy加急项目,要两周完成,海康威视的研究只好暂时缓缓,唉,心累,我unity也就是半桶水还没,公司也是心大,什么都敢接