当前位置:   article > 正文

unity中使用lua-protobuf_unity lua protobuf

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放在一起

  1. @echo off
  2. ::protoc -I 用的路径,.\后要加一个空格
  3. set PROTO_PATH_I=.\ Protocol
  4. set PROTO_PATH=.\Protocol
  5. set BYTES_OUT=..\Assets\Res\ProtobufCompiledProtocols
  6. set CS_OUT=..\Assets\Scripts\ProtobufGenerate
  7. set TEMP_OUT=.\_temp
  8. @echo off
  9. md "_temp"
  10. @echo off
  11. echo ----- 生成二进制文件 -----
  12. @echo off
  13. dir %PROTO_PATH%\*.proto /b  > %TEMP_OUT%\_temp_protolist.txt
  14. @echo on
  15. for /f "delims=." %%i in (%TEMP_OUT%\_temp_protolist.txt) do protoc -I  %PROTO_PATH_I%\%%i.proto -o %TEMP_OUT%\%%i.bytes"
  16. @echo off
  17. echo ----- 生成c#文件 -----
  18. @echo on
  19. for /f "delims=." %%i in (%TEMP_OUT%\_temp_protolist.txt) do protoc -I %PROTO_PATH_I%\%%i.proto --csharp_out %TEMP_OUT%"
  20. @echo off
  21. echo ----- 复制到目标目录 -----
  22. @echo on
  23. copy %TEMP_OUT%\*.bytes %BYTES_OUT%
  24. @echo on
  25. copy %TEMP_OUT%\*.cs %CS_OUT%
  26. @echo off
  27. echo ----- 删除临时目录 -----
  28. @echo on
  29. rd /s /q %TEMP_OUT%
  30. @echo off
  31. pause

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/720044
推荐阅读
相关标签
  

闽ICP备14008679号