zoukankan      html  css  js  c++  java
  • 【Unity】Protobuf的使用与常见问题

    Protobuf的使用流程

    protobuf参考教程:https://www.jianshu.com/p/b135676dbe8d

    手写.proto文件后,用CMD命令行运行protoc.exe编译器,进入.proto文件路径生成C#文件,再把C#文件放到Unity项目中使用。

    插件protobuf-net:http://www.cnblogs.com/xuf22/articles/3504399.html

    原因是官方Protobuf的C#实现要求.Net4.6及以上,而Unity使用的.Net过低版本(老版本最高.Net3.5,具体要看是用的Unity的版本)。

    在已写好的C#实体类中加上打标签。

    插件protobuf-unity:https://github.com/5argon/protobuf-unity

    这是Unity编辑器插件。Protobuf正常使用流程是手写.proto文件后,用CMD命令行运行protoc.exe编译器,进入.proto文件路径生成C#文件,再把C#文件放到Unity项目中使用。该插件可自动寻找Unity项目中所有.proto文件并一键生成所有对应的C#文件(出现在与每个.proto文件相同的目录下)。并且当.proto文件被修改时会自动重新生成C#文件!

    插件protobuf_for_unity

    https://github.com/GongFaxin/protobuf_for_unityhttps://github.com/bitcraftCoLtd/protobuf3-for-unity

    适用于unity3d 5.x。unity2017及以后版本请使用google官方版本。

    常见问题

    Missing input file

    命令行使用protoc.exe时,报错Missing input file。即当前设置的--proto_path目录下找不到.proto文件。如下图,protoc.exe与person.proto文件在同一目录下的。

     

    原因是格式错误,文件路径=./后面要加上一个空格!!!!!!!!!
     

    Unity不支持.Net3.5及以上

    如果编译Google.Protobuf.dll时选择的.Net版本过高,把该dll导入Unity项目中能看到dll无法正常工作,如下图。且.proto文件生成的C#文件中会报错。
    此时可以在Visual Studio中修改.Net版本再重新编译dll。修改方法如图。
    或者在Unity中修改.Net版本(需要较新的Unity版本)。在Edit - Project Settings - Player中,改用.Net4.6,之后重启Unity编辑器即可。
  • 相关阅读:
    day006 数字类型和字符串类型的内置方法
    awk技巧 nginx access.log
    测试访问速度
    ELK Deployed
    jenkins权限控制
    linux 系统优化
    nginx 刷新显示404
    虚拟机安装的ubutun全屏
    在线生成二维码
    GIT 命令集
  • 原文地址:https://www.cnblogs.com/guxin/p/9091392.html
Copyright © 2011-2022 走看看