menuconfig的专栏

进军移动互联网,专注游戏开发。

在Unity3d中使用GZip来压缩传输数据

因为Unity中的.net支持是有限制的,所以C#自带的GZip的压缩方法不能够使用。

 

         可以到下面网址去下载一个专门的dll来处理数据的GZip压缩:

http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

 

将下载的dll文件引入到工程中。

 

引入头部:

using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.GZip;

 

以下代码实现了压缩和解压的方法:

复制代码

     MemoryStream ms = new MemoryStream();
        GZipOutputStream gzip = new GZipOutputStream(ms);
        byte[] binary = Encoding.UTF8.GetBytes("sddddddddd");
        gzip.Write(binary, 0, binary.Length);
        gzip.Close();
        byte[] press = ms.ToArray();
        Debug.Log(Convert.ToBase64String(press) + "  " + press.Length);


        GZipInputStream gzi = new GZipInputStream(new MemoryStream(press));
        
        MemoryStream re = new MemoryStream();
        int count=0;
        byte[] data=new byte[4096];
        while ((count = gzi.Read(data, 0, data.Length)) != 0)
        {
            re.Write(data,0,count);
        }
        byte[] depress = re.ToArray();
        Debug.Log(Encoding.UTF8.GetString(depress));
复制代码
阅读更多
个人分类: 游戏开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

在Unity3d中使用GZip来压缩传输数据

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭