unity中使用lua-protobuf

用lua-protobuf替换lua的protoc-gen-lua

lua-protobuf下载:https://github.com/starwing/lua-protobuf

 

将tolua中pbc(pb.c),替换成lua-protobuf(pb.c和pb.h),然后编译成相应平台支持的库文件(win tolua.dll, android libtolua.so, mac tolua.bundle, ios libtolua.a)替换原来的文件(我直接用了别人编译好的文件)

 

复制lua文件到工程的lua文件目录下

 

用pb.load加载协议的二进制文件

 

使用了protoc 3.9.0

生成协议的二进制文件

protoc -I [协议文件路径] -o [生成的文件路径]

生成c#文件

protoc -I [协议文件路径] --csharp_out [生成文件的目标目录]

 

注意:-I 后的 ./ 后面要加空格,不然会提示Missing input file,别的好像就不用加

为了使用生成的c#文件,还需要把Google.Protobuf.dll和一些相关的dll导入工程,用NuGet下载Google.Protobuf,都会下载到Packages里

 

使用的批处理程序,与protoc.exe放在一起

@echo off



::protoc -I 用的路径,.\后要加一个空格

set PROTO_PATH_I=.\ Protocol

set PROTO_PATH=.\Protocol

set BYTES_OUT=..\Assets\Res\ProtobufCompiledProtocols

set CS_OUT=..\Assets\Scripts\ProtobufGenerate

set TEMP_OUT=.\_temp



@echo off

md "_temp"



@echo off

echo ----- 生成二进制文件 -----

@echo off

dir %PROTO_PATH%\*.proto /b  > %TEMP_OUT%\_temp_protolist.txt

@echo on

for /f "delims=." %%i in (%TEMP_OUT%\_temp_protolist.txt) do protoc -I  %PROTO_PATH_I%\%%i.proto -o %TEMP_OUT%\%%i.bytes"





@echo off

echo ----- 生成c#文件 -----

@echo on

for /f "delims=." %%i in (%TEMP_OUT%\_temp_protolist.txt) do protoc -I %PROTO_PATH_I%\%%i.proto --csharp_out %TEMP_OUT%"





@echo off

echo ----- 复制到目标目录 -----

@echo on

copy %TEMP_OUT%\*.bytes %BYTES_OUT%

@echo on

copy %TEMP_OUT%\*.cs %CS_OUT%





@echo off

echo ----- 删除临时目录 -----

@echo on

rd /s /q %TEMP_OUT%



@echo off

pause

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值