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

转载 2013年12月02日 16:26:24

因为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 字符串压缩 ICSharpCode.SharpZipLib

对于unity3d的web player中使用的sysytem.dll是阉割版,不是完整的微软的system.dll,所以在Unity3d中要使用压缩还是有点麻烦的,我这里使用的第三方的dll,经典的...
  • menuconfig
  • menuconfig
  • 2013年12月02日 16:26
  • 4692

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

项目中网络通讯需要下载配置数据,有的数据块非常大,比较耗时,所以想到先压缩数据来传输! 因为Unity中的.net支持是有限制的,所以C#自带的GZip的压缩方法不能够使用。    ...
  • xuwen123kuan
  • xuwen123kuan
  • 2016年05月11日 14:10
  • 1536

unity安卓包大小压缩优化(146M优化到83M)

想要压缩包大小,首先得知道打包出来的各个资源的大小,明确知道哪些资源占用大,可以通过如下操作打开Editor.log(可能需要先输出一遍安卓包) 1、在Unity Console界面右上角点开Open...
  • egostudio
  • egostudio
  • 2016年05月20日 10:58
  • 4215

unity-zip压缩与解压

前一段时间在实现unity动态热更新的时候,开始研究下了unity的zip压缩与解压缩的实现,这个过程中共发现三种压缩与解压缩的技术,分别是:   1、LZMA压缩与解压缩(相关地址:http://w...
  • xunni_5241
  • xunni_5241
  • 2016年09月05日 13:07
  • 3530

unity中实现压缩解压功能

QQ群: 83596104
  • hiramtan
  • hiramtan
  • 2015年11月18日 09:26
  • 1865

unity解压文件变态提速

unity解压文件变态提速 unity文件的随包 绝大多数的手游我相信都会带一部分资源到手机上,这部分资源被称为随包资源,正常情况下的资源会放入Resources下或者StreamingAsset...
  • pdw_jsp
  • pdw_jsp
  • 2016年12月26日 10:22
  • 833

Unity LZMA GZIP 压缩、解压文件 和 打包文件夹 (支持进度回调)

我们知道在Unity5.x开始推出新的AssetBundle打包策略,给出的新的打包以及解包的Api。在处理资源依赖关系的时候较旧版本的显得方便了许多。 然而,在使用的过程中我们发现,新的解包Api(...
  • y1196645376
  • y1196645376
  • 2016年09月10日 09:51
  • 5506

关于Java的GZIP压缩与.net C#的GZIP压缩的差异

关于Java的GZIP压缩与.net C#的GZIP压缩的差异
  • sunny518
  • sunny518
  • 2016年12月29日 10:04
  • 1247

[Java]使用gzip对字符串进行压缩/解压

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio...
  • u014595019
  • u014595019
  • 2015年12月09日 01:12
  • 2377

利用python中的gzip模块压缩和解压数据流和文件

直接给出源码实现, 分为两种情况: 1.网络连接中的数据流的压缩和解压,或是打开的文件读取一部分 2.打开文件压缩或是解压 #!/usr/bin/env python #encoding: utf-8...
  • tao_627
  • tao_627
  • 2015年07月01日 17:37
  • 8558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Unity3d中使用GZip来压缩传输数据
举报原因:
原因补充:

(最多只允许输入30个字)