Protobuf-net 在Unity3D中使用的小技巧 (解决JIT错误)

项目中使用了开源项目 Protobuf-net 来解析 google protobuf 格式的通信数据,因为 GOOGLE 自带支持的语言里不包括 C#,所以需要用到第三方的开源库 Protobuf-net 。

之前在WIN7,安卓上使用都正常。发布到 IPAD MINI2 上是发现有问题,表现如下:
有时可以正常使用,但似乎一开始会被卡一会。
有时完全无法正常使用,反序列化的时候会抛异常出来。

查网络上资料,觉得是否应该在发布到IOS时设置里要改一下。
有一个选择支持“.Net 2.0 subset模式”或“.Net 2.0模式”的选项,默认是“.Net 2.0 subset模式”,网上说要改成“.Net 2.0模式”
改了后,发现还是抛异常,不过现在报“JIT异常”,发现U3D不支持。

所以最后采用的方法是
1. 下载protobuf-net源码, 把其中“protobuf-net”文件夹 拷贝到unity 即可 . (我从svn下载好之后有很多文件夹的,比如protobuf-net,protobuf-net_IKVM,protobuf-net_MonoDroid,protobuf-net_Phone7 ,ProtoGen,QuickStart 等等 ,只复制那个protobuf-net就可以 。) 
地址:https://github.com/mgravell/protobuf-net
2. 建立一个新的文件smcs.rsp   ,内容是-unsafe ,前后都无空格。该文件放在 Assets 目录下。
3. 把工程设置为.Net 2.0 subset
4. 重启Unity 
这样就搞定了。 

需要注意的是: 
你的工程必须是.Net 2.0 subset,   如果是.Net 2.0是无法在ios上用这个方法的

----------------
报错信息截图示例:
Protobuf-net <wbr>在Unity3D中使用的小技巧 <wbr>(解决JIT错误)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值