当前位置:   article > 正文

Unity之C#中使用protobuf_c# protobuf

c# protobuf

Unity中使用protobuf分三个步骤:

第一步、生成.dll文件,导入Untiy的Plugins文件夹中;
第二步、将.proto文件编译成.cs文件,导入Unity中;

第三步、代码调用;

第一步、生成.dll文件,导入Untiy的Plugins文件夹中;

①、下载官方protobuf,地址: https://github.com/protocolbuffers/protobuf/releases

②、用vs打开:protobuf-22.2/csharp/src/Google.Protobuf.sln

③、vs 打开后,因为我们只需要 net45,所以删除 Google.Protobuf.sln 中的 net50,如下图:

④、vs 设置为 Release 模式,然后右键选中 Google.Protobuf --> 生成,即可生成需要的 dll 文件,生成的文件位于 protobuf-22.2/csharp/src/Google.Protobuf/bin/Release/net45 目录下,如下图:

⑤、将net45中所有文件导入Unity的Plugins文件夹中,如下图:

第二步、将.proto文件编译成.cs文件,导入Unity中;

①、编写.proto文件:新建txt文本,重命名为Test.proto,文件内容为:

  1. syntax = "proto3";
  2. package msg;
  3. option java_package = "game.msg";
  4. // 消息结果。
  5. message MessageResult {
  6. // 结果码。
  7. int32 code = 1;
  8. // 消息内容。
  9. string msg = 2;
  10. }

②、下载官方protoc,地址: https://github.com/protocolbuffers/protobuf/releases/tag/v22.2

③、输入命令编译.proto,为了方便,编写一个.bat文件,新建txt文本,重命名为compile_CS.bat,文件内容为:

  1. chcp 65001
  2. REM 编译.proto文件,转换为C#,输出到当前目录下
  3. @echo compile proto to C#
  4. @call protoc.exe --csharp_out ./ Test.proto

④、编译:
将Test.proto文件、compile_CS.bat文件,放入protoc.exe所在文件夹中,双击compile_CS.bat,即可生成Test.cs文件,如下图:

第三步、代码调用:

①、将Test.cs导入Unity中;
②、编写代码:

  1. using Google.Protobuf;
  2. using Msg;
  3. using UnityEngine;
  4. public class NewTest : MonoBehaviour
  5. {
  6. void Start()
  7. {
  8. MessageResult messageResult = new MessageResult();
  9. messageResult.Code = 99;
  10. messageResult.Msg = "成功";
  11. // proto消息对象,转换成字节数组
  12. byte[] dataBytes = messageResult.ToByteArray();
  13. // proto消息字节数组,转换成对象
  14. // 第一种方式:实例调用
  15. // IMessage message = new MessageResult();
  16. // MessageResult newMessageResult = (MessageResult)message.Descriptor.Parser.ParseFrom(dataBytes);
  17. // 第二种方式:静态直接调用
  18. MessageResult newMessageResult = (MessageResult)MessageResult.Descriptor.Parser.ParseFrom(dataBytes);
  19. Debug.Log(newMessageResult.Code); // 99
  20. Debug.Log(newMessageResult.Msg); // "成功"
  21. }
  22. }

至此,Unity中使用protobuf流程结束!

转载链接:Unity之C#中使用protobuf - 简书

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

闽ICP备14008679号