(一)unity 添加 pb 的 dll 支持。
1,从GitHub上下载protobuf源码 (源码链接:https://github.com/google/protobuf),找到 csharp 分支检出。

2,用 VisualStudio 打开工程目录下 csharp/src/Google.Protobuf.sln 文件。

3,ctrl+k,生成 DLL 文件。

4,把 bin 下面生成的 Google.Protobuf.dll 复制到 unity 中。Done!


(二)生成 .proto 对应的 .cs 文件。

1,在 GayHub 上下载 proto文件的编译器(Git地址: https://github.com/google/protobuf/releases),下载对应的平台的编译器(如我是mac 下载的 protoc-3.6.1-osx-x86_64)

2,写一个 TestProto3.proto 文件

------------------------------------
  syntax = "proto3"; // 必须,标明 proto 语法的版本
  package TestProto3; // 生成的 cs 的命名空间

  message PersonMc{
    string Name = 1; // 123 不是参数默认值,是参数标签,从上往下写就行,不用管啥意思
    int32 Age = 2;
    repeated string Hobbies = 3; // repeated 表示数组
  }
  // proto 的更多语法可以参考 https://developers.google.com/protocol-buffers/docs/proto3
------------------------------------

3,打开刚才的编译器目录,运行 bin 下面的 protoc 程序。执行命令(我这个是mac 其他的自己查找)
------------------------------------
  protoc ./TestProto3.proto --csharp_out=./
------------------------------------

4,上一步编译成功,获得一个 TestProto3.cs 文件。

5,把这个 cs 复制到 unity 中。 Done!


(三)使用 protobuff的序列化和反序列化

------------------------------------
举个

unity 中 protobuff 的用法 一句话攻略的更多相关文章

  1. 在net安装程序中部署oracle客户端全攻略

    在net安装程序中部署oracle客户端全攻略 主要的是要做三件工作: 打包文件,写注册表,注册环境变量说明:我的oracle版本为9, 在2000 advanced server 上测试通过,可以正 ...

  2. webBrowser中操作网页元素全攻略

    原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...

  3. Unity中有限状态机的用法教程

    Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  4. (@WhiteTaken)Unity中Invoke的用法

    今天无意间读到大神写的代码,看到了Invoke函数,于是产生兴趣.后来才明白自己要学习的东西还有很多. 下面讲用法. Invoke是延时调用函数,在用Invoke函数之前需要引入命名空间using U ...

  5. httpd-2.2 配置及用法完全攻略

    导读 apache是一款稳定的流行的web软件,是linux操作系统中默认的web管理软件.在RHEL/Centos系列中可以用rpm直接进行安装,服务名为httpd.apache有很多设置和调优 的 ...

  6. ASP.NET中后台注册js脚本攻略(转)

    用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别:   1.使用Page ...

  7. Unity 中 ContextMenu 的用法

    在自定义脚本中的方法前加入  [ContextMenu("Execute")]  标签,然后将脚本挂载到对象上,可以再编辑模式下执行标记的方法: 自定义脚本如下: using Sy ...

  8. cocos2d-js中jsc逆向为js攻略

    笔记: 主要发现有两个工具 存档记录一下 https://github.com/OEDx/cocos-jsc-endecryptor  python的 解密需要秘钥 推荐这个: https://git ...

  9. Unity 项目中委托Delegate用法案例

    Unity中Delegate的用法场景 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...

随机推荐

  1. java 统计字符串中子字符串个数

    方法一: public class StatisticalStringNumber1 { public static void main(String args[]){ String string=& ...

  2. linux和windows之间的文件压缩和解压缩以及^R的问题

    推荐大家使用zip压缩和解压,因为zip一般是linux系统自带: 一.zip和unzip 1. zip压缩 zip -r myfile.zip ./web 将当前目录里的web下的所有文件和文件夹全 ...

  3. Nginx+Apache动静分离

    Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术.动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项 针对PHP的动 ...

  4. scrapy连接MongoDB

    Scrapy中连接MongoDB所需要做的工作如下: 1.settings中需要设置的部分: # 启动管道组件 ITEM_PIPELINES = { 'QianChengWuYu.mongoDBPip ...

  5. 闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别

    闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别 函数最常见的形式是具名函数(named function): function foo(){ con ...

  6. 题目1022:游船出租(hash简单应用)

    问题来源 http://ac.jobdu.com/problem.php?pid=1022 问题描述 每次输入:船号(1~100) 键值(S或E) 发生时间(小时:分钟).当船号为0时,代表一天结束: ...

  7. 0、PlayGround可视化

    Tensorflow新手通过PlayGround可视化初识神经网络 是不是觉得神经网络不够形象,概念不够清晰,如果你是新手,来玩玩PlayGround就知道,大神请绕道. PlayGround是一个在 ...

  8. 【算法笔记】B1017 A除以B

    1017 A除以B (20 分)   本题要求计算 A/B ,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: ...

  9. simulate UE activity

    can: 1,connect, disconnect 2,configure serial,nic,com,model,version,IMEI,IMSI,IP 3,various AT comman ...

  10. Java Web基础——Controller+Service +Dao三层的功能划分

    转自:https://www.cnblogs.com/cielosun/articles/5752272.html 1. Controller/Service/DAO简介: Controller是管理 ...