如何在unity中使用protobuf工具生成cs类

如题所述

首先下载protobuf的.net库地址:http://download.csdn.net/detail/musicseli/9260723

然后把ProtoGen整个文件拷贝出来,放到我们的unity开发目录下

把FULL文件夹下的unity .net库拷贝到Asset文件夹下 plugin文件中(如果没有就新建一个)

此时我的目录结构是这样的

在ProtoGen里面新建个文件夹protos用于存放我们的proto文件

在跟Asset同级目录下编写generator.bat脚本,这样子就可以自动帮你生成这些cs文件

[ruby] view plain copy
@echo off
set out_path=%cd%/Assets/Game/Script/protobuf (这一段可以自定义路径,用于存放生成的cs文件)
cd ProtoGen
rem 查找文件
for /R "%cd%" %%i in (*.proto) do echo %%~ni
for /R "%cd%" %%i in (*.proto) do protogen -i:%%i -o:%out_path%/%%~ni.cs
pause
温馨提示:内容为网友见解,仅供参考
无其他回答

如何在unity中使用protobuf工具生成cs类
首先下载protobuf的.net库地址:http:\/\/download.csdn.net\/detail\/musicseli\/9260723 然后把ProtoGen整个文件拷贝出来,放到我们的unity开发目录下 把FULL文件夹下的unity .net库拷贝到Asset文件夹下 plugin文件中(如果没有就新建一个)此时我的目录结构是这样的 在ProtoGen里面新建个文件夹protos用于存放我...

unity怎么在lua中用protobuf的?
unity在lua中用protobuf可以在PC或者移动设备上使用。lua-protobuf的高层接口:pb.dll提供四个模块:1、pb模块:高层接口,提供和pbc兼容的encode\/decode接口。2、pb.conv:这是一个转换工具库,负责在Lua里方便地在protobuf提供的各种类型和Lua原生类型之间转换。3、pb.slice:提供了底层的protobuf协议...

Protobuf-net判断字段是否有值
Unity3d使用Protobuf-net序列化数据与服务器通信,但是发现默认情况下,Protobuf-net生成的cs文件中没有接口判断可选参数是否有值。需有添加 -p:detectMissing 参数才能生成判断接口。在C++中生成 has_*() 接口,在C#中是 *Specified() 接口。例如 rpc.proto:message RpcRequest { optional uint32 id...

如何在unity中通过Socket使用protobuf
没用过Protobuf,网络传的都是字节流 好高端的样子 只用过socket.send();发过字节流 Unity的序列化貌似用于自己API样子。序列化,涉及一些数据结构什么,可以自定义接口来读取和保存,字节流。比如,strut Point{int;float;float; float;},序列化就是申请4*4字节,写入一次Int32,和3次Single,反序...

如何在unity中通过Socket使用protobuf
通常,socket之类通信有不同端口(客户端、 服务器 ),传一个对象是不切实际的,相当于你要把不同内存条串起来?通常就是传一些关键数据,比如说A客户端的Player走到点P,通过socket把点p传到服务器, 服务器再传给客户端B、C、D,这些客户端解析socket,把他们显示A君模型移动到P ...

protobuf-net运行在Unity上,修复IL2CPP反射不兼容问题
这时候需要对 protobuf-net 稍作修改,重新编译出DLL才能在Unity下完美运行。这种修改,估计很多遇到同样问题的项目都遇过了。 分享给遇到同样困难的人,希望有帮助。详细修改,放到GitHub的一个分支上了。https:\/\/github.com\/kingsoft-topgame\/protobuf-net\/commit\/4eddeeb41b4e67e3ed59b11c727c73a12...

求一份unity中Socket-TCP从服务器接收数据方法的代码
接收的字节使用了protubuf反序列化,处理的时候要注意和服务器发送消息类型、大小定义一致。如果不需要可以直接删除,用服务器发送字符串也是一样 using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Net.Sockets;using System;using UnityEngine.Networking;using System....

Packages目录下Shader打包疑问
在客户端背包刷新机制上,一种优化方式是采用版本号管理,根据Server版本更新本地数据,而不是每次都全量请求。网游中同步背包数据时,可以考虑使用ProtoBuf进行压缩传输。最后,PBXProject.AddCapability的问题中,InAppPurchase的添加可能需要额外的Storekit框架支持。如遇添加失败,检查是否已正确集成相关框架。

unity3d 网游服务器端如何选择
KBEngine建议开发环境选择Windows,生产环境选择linux。毕竟你总不希望开一组服务器打开9个Console窗体,一不小心把哪个点X了吧~协议 Photon有自己的序列化反序列化方式,你也可以使用protobuf这类的来做应用层传输协议。KBEngine在这方面表示不支持自定义协议,它帮你选择了有效的方法来处理,如果你习惯了...

游戏引擎怎么开发?
4.网络:提供联网的功能,按需提供TCP,UDP,HTTP等协议的包装好的易用的接口。如果为了方便开发,可以处理好客户端和服务器通信的连接处理,错误提示,协议的帧格式,序列化、反序列化方式,可以在此之上提供进一步的规范,例如采用Protobuf作为协议格式。5.游戏编程接口:这就是提供给开发者的API的组织。

相似回答