Unity中使用ProtocolBuffer


Unity中使用ProtocolBuffer

unityProtocolBufferUnity ProtocolBuggerC# ProtocolBuffer

Protobuf2CS

[

通过如下.bat文件可统一将该目录下ProtoFile下我们定义的如上UserInfo.proto文件转为.cs代码

@echo off

set "PROTOC_EXE=%cd%\tool\protoc.exe"
set "WORK_DIR=%cd%\ProtoFile"
set "CS_OUT_PATH=%cd%\cs"
::if not exist %CS_OUT_PATH% md %CS_OUT_PATH%

for /f "delims=" %%i in ('dir /b protoFile "ProtoFile/*.proto"') do (
  echo gen protoFile/%%i...
  %PROTOC_EXE%  --proto_path="%WORK_DIR%" --csharp_out="%CS_OUT_PATH%" "%WORK_DIR%\%%i"
  )
echo finish... 

pause

生成后的CS文件可直接作为模型类使用

4、使用

首先、我们需要把Google.protobuf.dll引入到工程项目中去。之后就可以用其提供的序列化和反序列化方法来直接使用。需要注意的是所有的模型类都实现了IMessage接口,因此我们可以在结发的入口中直接通过IMessage类型来处理数据,在通过协议把他转换为相应定义的数据类型.

  1. byte[] userBytes= ProtobufHelper.ToBytes(user); 
  2. UserInfo userFromBytes = ProtobufHelper.FromBytes(userBytes);