Unity中protobuf的使用方法
来源:互联网 发布:淘宝的爱奇艺会员没了 编辑:程序博客网 时间:2024/06/03 16:01
http://blog.csdn.net/panda_bear/article/details/9949751#comments
在移动手机游戏开发中,目前Unity3D已成为比较主流的开发技术。
那么对于客户端服务器协议的打解包,我们有3中常用的处理方式:
1、自定义结构体:在协议中直接传输代码中自定义的结构体;这种方式的坏处是极大的增加了重复性的工作量,并且不能实现协议前后向兼容,可扩展性差;
2、json、xml等文本协议格式: 使用json、xml等文本协议作为协议格式;这种方式的好处是易于开发,方便协议前后向兼容和扩展,缺点是不能序列化,数据量大,浪费带宽;
3、推荐使用的方式: protobuf协议打解包方式;protobuf是google提出的一套开源协议,具有良好的前后向协议兼容性,易于扩展,并且具有很高的序列化和反序列化的效率,能极大的减小传输数据量的大小;
在Unity3D开发中,对于网络部分一般使用C#语言进行开发。一般推荐使用protobuf-net第三方库来进行开发。
但是不幸的是,其中使用到的JIT技术在Unity3D的IOS版本中是不能使用的,在序列化时会导致异常。
经过google网上搜索,找到一种不方便使用的解决方案如下:
http://www.frictionpointstudios.com/blog/2011/3/31/using-protobuf-net-serialization-in-unity-iphone.html
但是该方案很复杂,非常不便于操作。
经过笔者自己的实验,探索出下面可用的一种解决方案:
1、从SVN上下载protbuf-net的源码:
http://protobuf-net.googlecode.com/svn/trunk/protobuf-net
2、将该目录中的所有C#源码拷贝到Unity3D中,直接使用源码而不是第三方dll;
3、此时在Unity中编译时,可能会报错说 unsafe不能使用;
4、采用如下方案可以解决: 在Assets目录下面新建 smcs.rsp文件,并在其中写入 -unsafe 字符串,前后不加空格;
5、重新启动unity,此时我们可以发现该工程能够通过编译;
经验证,该方案在IOS设备上也是可用的。从而保证我们的protobuf能够应用在Unity移动开发中。
- Unity中protobuf的使用方法
- Unity中protobuf的使用方法
- Unity中protobuf的使用方法
- Unity中为什么使用protobuf以及使用方法
- Unity中使用Protobuf
- C# protobuf的使用方法
- C# protobuf的使用方法
- Protobuf的使用方法
- C# protobuf的使用方法
- 【protobuf】 2.在Unity中引用ProtoBuf
- Unity中camera的使用方法
- Unity中json的使用方法
- Unity中使用Protobuf-net
- unity中简单实用protobuf(Protobuf-net)
- unity中使用protobuf(兼容ios平台)
- unity中使用protobuf(兼容ios平台)
- protobuf使用方法
- protobuf使用方法
- java基础学习笔记8
- c#项目关闭窗口却不能关闭进程问题的解决
- 静态库与动态库的理解
- 关于Struts2配置问题,不能映射到对应的页面
- ICMP报文类型
- Unity中protobuf的使用方法
- 一个老工程师给年轻人的十大忠告【转帖】
- god of light(神之光)修改萤火虫数量方法
- 抖姿缆诒闷炊讯车靥汤疚汤姿靥燃
- wp8开发中c++与c#的交互
- 志脊怨谢医扰谢至刂质补戳恃墩谢
- 每豆附橙嚎俺岛姓夭又韧萌纳诖柯
- Mysql实用教程---郑阿奇
- 在eclipse创建web项目的问题总结