Unity 使用 Protobuf-net

1.下载 Protobuf-net 点击打开链接

2.用VS打开Protobuf-net 解决方案,编译CodeGen 项目



3.在protobuf-net-master\ProtoGen\bin\Debug 目录中编写一个测试Order.proto 文本文件,.proto 语法请自行查找资料

package ServerMessage; 

message Order
{
  required int32 time = 1;
  required int32 userid = 2;
  required float price = 3;
  optional string desc = 4;
}

4.打开命令行,进入 protobuf-net-master\ProtoGen\bin\Debug 这个目录

5.运行如下命令

protogen -i:Order.proto -o:Order.cs

-i 是输入文件,可以有多个

-o 输出的cs文件, 只能有一个..如果-i有多个 会将所有的代码生成到这一个cs文件当中

-ns 命名空间   最好使用,如果不使用每次生成的默认命名空间是proto的文件名。

6.在所下载的Protobuf-net 目录中 找到 protobuf-net 文件夹, 把整个文件夹放在Unity assets文件夹下,这时候会报错,先不用管

7.assets 下新建一个文件夹Msg, 把Order.cs 放在里面

8.在asserts 目录下新建一个文本文件 写入 -unsafe,前后不要有空格,然后重命名文件smcs.rsp

9.Untiy中添加一个button ,添加一个脚本脚本 ,并引用

using ProtoBuf;
using ServerMessage;


添加一个函数,并和按钮点击事件关联

    public void OnClicked()
    {
       Order od     = new Order();
       od.desc      = "test";
       od.price     = 100.0f;
       od.time      = 10000;
       od.userid    = 205;
       
       MemoryStream stream = new MemoryStream();
       Serializer.Serialize(stream, od);

       //此结果就可以在网络上传输
       byte[] result;
       result = stream.ToArray();

       //测试反序列化
       MemoryStream dstream = new MemoryStream(result);
       Order ed= Serializer.Deserialize<Order>(dstream);

       Debug.Log("desc:" + ed.desc);
    }

10.重启Unity







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值