(转)[原创]在ios android设备上使用 Protobuf (使用源码方式)

自:http://game.ceeger.com/forum/read.php?tid=13479

如果你的工程只能以.Net 2.0而不能以.Net 2.0 subset运行,请看另外一个方法。 
地址:http://game.ceeger.com/forum/read.php?tid=13479&fid=27

=============================================================== 
在此感谢下ganqiang87童鞋,本来之前试过这个方法的 但是不行,可是后来他说可以。我就试了下另外一个模式,结果就成了。

步骤: 
1. 下载protobuf-net源码, 把其中“protobuf-net”文件夹 拷贝到unity 即可 . (我从svn下载好之后有很多文件夹的,比如protobuf-net,protobuf-net_IKVM,protobuf-net_MonoDroid,protobuf-net_Phone7 ,ProtoGen,QuickStart 等等 ,只复制那个protobuf-net就可以 。) 
地址:http://code.google.com/p/protobuf-net/source/checkout 
通过svn下载。 
================================================================================ 
注意:  现在protobuf-net google官网已经不存在源码了, 作者已经把代码转移到github上去了 
         新地址: https://github.com/mgravell/protobuf-net 
================================================================================ 
2. 建立一个新的文件smcs.rsp  ,内容是-unsafe 
3. 把工程设置为.Net 2.0 subset 
4. 重启Unity 
这样就搞定了。

需要注意的是: 
你的工程必须是.Net 2.0 subset,  如果是.Net 2.0是无法在ios上用这个方法的。(看帖子开头的红字)

如果你之前使用dll的方式,而要转换成源码的方式 , 是很简单的(反之也一样)。 具体可以看一下源码中的Serializer类,函数名都一样。

提供包下载(里面包括了protobuf-net源码和smcs.rsp ,直接导入到工程就可以使用):http://pan.ceeger.com/viewfile.php?file_id=1832

上一篇:MultipleOutputs新旧api


下一篇:JSON.parse() 和 JSON.stringify() 的区别