个人资料

跳过导航链接首页 > 博客列表 > 博客正文

unity使用网站webservice的简单办法

:

    开发手机应用的时候开发环境都有使用WebService的接口。可以像使用函数一样调用web服务,unity3d如何调用web服务呢?我找了好久,资料很少,难道都直接用socket通讯来做了?

    反复查看webservice接口的时候,我突然开窍了,很多时候unity根本没有必要做接口,直接读取webservice网址返回的结果读取文本就可以了!比如我网站的这个webservice服务http://songshizhao.com/apps/rockhero.asmx/AllMusicInfo

    直接返回的就是一个文本。用unity的www类来读取返回的文本就可以了!当然也是需要一点点技巧的,因为返回的文本是xml文件,需要用XmlDocument类处理一下。加载也需要异步加载为好,因为万一网络延迟加载时界面可能会卡死。

    对于有参数的webservice方法,使用网址传递参数值,如SelectMN(m,n)方法,unity直接访问网址时传递对应的参数即可。比如http://songshizhao.com/apps/rockhero.asmx/SelectMN?m=1&n=9。

IEnumerator GetMusicInfo()
    {
        WWW www = new WWW(url);   //这部分看www的API,你懂的
        yield return www;

        XmlDocument xml = new XmlDocument();
        xml.LoadXml(www.text);

        XmlElement tables = xml.DocumentElement;
        int i = 0;
        foreach (XmlElement item in tables)
        {
            var str =item.InnerText.Split("," [0]);
            sceneLoad.BundleName[i]= str[1];
            sceneLoad.AssetName[i] = str[2];
            sceneLoad.BundleVarient[i] = str[3];
            sceneLoad.singers[i] = "————" + str[4];
            sceneLoad.songs[i] = str[5];
            i += 1;          
        }


        }

    }

    unity这样使用web服务还是非常简单的!前提是你返回的web服务格式要有好一点,我最开始做的web服务喜欢直接返回DataSet,十分简单粗暴,但那个xml略复杂啊。如果你开发unity负责和web服务接口,千万要和做web服务的兄弟好好说说,返回数据稍微简化一下哈,不然处理xml还是挺费脑子的%>_<%。

    我想unity大部分使用web服务的方法都是这样吧,因为如果去做接口,过程复杂不说还不一定实用可靠。

songshizhao
最初发表2017/3/18 20:42:12 最近更新2017/3/18 20:42:12 7095
为此篇作品打分
10