Unity之中使用Compresion

作者:王刚(mail@wanggangzero.cn)
起因: 在Unity里面传输一些数据.因为是json字符串,故欲压缩以提升传输效率..

实际操作的时候,用System.IO.Compression中的DeflateStream进行操作.
自己写的发送模拟程序中跑的很嗨.但是在Unity之中使用的时候报错.

System.DllNotFoundException: MonoPosixHelper
  at (wrapper managed-to-native) System.IO.Compression.DeflateStream:CreateZStream (System.IO.Compression.CompressionMode,bool,System.IO.Compression.DeflateStream/UnmanagedReadOrWrite,intptr)
  at System.IO.Compression.DeflateStream..ctor (System.IO.Stream compressedStream, CompressionMode mode, Boolean leaveOpen, Boolean gzip) [0x00000] in <filename unknown>:0 
  at System.IO.Compression.DeflateStream..ctor (System.IO.Stream compressedStream, CompressionMode mode, Boolean leaveOpen) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.Compression.DeflateStream:.ctor (System.IO.Stream,System.IO.Compression.CompressionMode,bool)
  at WebSocketSharp.Ext.compress (System.IO.Stream stream) [0x00000] in <filename unknown>:0 
  at WebSocketSharp.Ext.Compress (System.IO.Stream stream, CompressionMethod method) [0x00000] in <filename unknown>:0 
  at WebSocketSharp.WebSocket.send (Opcode opcode, System.IO.Stream stream) [0x00000] in <filename unknown>:0 UnityEngine.Debug:Log(Object)

具体的意思就是找不到DLL或者DLL中找不到指定的类.

经过谷歌之后发现原来, 2009年的时候就已经有人在Unity社区提过这个问题了.可是基本没啥人重视(#‵′)凸

原因呢,是因为,Unity那帮子人使用的Mono版本一直是2.6的,后来就没从Mono项目那边同步过(非本人言论,别打我).

然后就是stackoverflow了,那上面人们讨论这个问题挺多的,都是自己写或者现成的第三方方案.

当然了,最后我也是用的现成的.

微软在2014年的时候把.net类库开源了, 然后有人把compression这部分代码整理了一份Unity版的.
即System.IO.Compression => Unity.IO.Compression.

传送门

转载于:https://my.oschina.net/wanggangzero/blog/666591

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值