Unity登录服务器及处理返回的json数据

本文由 @EGWriket出品,转载请注明出处。
http://blog.csdn.net/egwriket/article/details/53179400

环境

软件:untiy5.0.2f1

界面

使用自带的UGUI,主要是输入框和登录按钮
Unity登录服务器及处理返回的json数据_第1张图片
UI:
Unity登录服务器及处理返回的json数据_第2张图片

连接网络

代码

新建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);        
    }   
}

绑定事件

Unity登录服务器及处理返回的json数据_第3张图片
1.新建一个空对象,改名为Event
2.把脚本LoginEvent绑定Event
3.把两个InputField控件拖进Inspector界面的LoginEvent(Script)下
Unity登录服务器及处理返回的json数据_第4张图片
4.选择ButtonLogin这个Button控件
5.到Inspector界面找到Button(Script)的On Click()底下的+
6.把Event拖进None
Unity登录服务器及处理返回的json数据_第5张图片
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,看返回什么结果
Unity登录服务器及处理返回的json数据_第6张图片
2.运行,输入用户名,密码
Unity登录服务器及处理返回的json数据_第7张图片
3.看调试
Unity登录服务器及处理返回的json数据_第8张图片
4.随便说说
返回是的json字符串才能用
接了个untiy加急项目,要两周完成,海康威视的研究只好暂时缓缓,唉,心累,我unity也就是半桶水还没,公司也是心大,什么都敢接

你可能感兴趣的:(untiy)