unity www使用汇总
www 发送请求
get方式
通过传入网址后面拼接透传信息
例:
WWW www = new WWW("http://127.0.0.1/Test.php?username=get&password=12345");
post方式
如果需要传入的参数过长或传入的信息不是不是字符串类型,则推荐post方式
例:
WWWForm form = new WWWForm();//创建表单
form.AddField("a","b");//添加参数
WWW www = new WWW("需要请求的url",form);
www 接收数据
接收数据一般要在协同里面处理
yield return www;
倘若需要知道下载的进度,可以在update方法里面监听www.progress属性。
如果下载的是文本,直接使用www.text属性即可
如果是图片,可以使用www.texture属性
如果是其他文件,可以使用www.bytes属性,转成所需要的格式
www下载图片处理细节
在下载图片的时候,会遇到下列的问题
1:想判断下载的图片是什么格式的(虽然我们知道文件名,但我们却没有该文件的后缀)
解决办法:
string pictureType = www.responseHeaders["CONTENT-TYPE"];
通过这个方法,我们可以判断,该图片是什么格式。
2:如果图片的格式是gif格式的话,在使用ngui,UITexture显示图片的时候,直接使用www.texture的话,图片显示不正确(因为gif格式的图片是动图);
解决办法,通过在网上查找的过程中,有位大牛,直接将gif,转换成一系列texture,我们取第一帧就好了。
使用的插件请查看点击链接http://download.csdn.net/detail/liulei199079/9902300
为了使用方便,我在脚本UniGif添加了一个方法,如下
public static List<Texture2D> GetTextureList(byte[] bytes)
{
int loopCount, width, height;
return GetTextureList(bytes,out loopCount,out width,out height).ConvertAll(item => item.texture2d);
}
记得添加命名空间System.Linq