unity 中 protobuff 的用法 一句话攻略
(一)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的序列化和反序列化
------------------------------------ 在net安装程序中部署oracle客户端全攻略 主要的是要做三件工作: 打包文件,写注册表,注册环境变量说明:我的oracle版本为9, 在2000 advanced server 上测试通过,可以正 ... 原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ... Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ... 今天无意间读到大神写的代码,看到了Invoke函数,于是产生兴趣.后来才明白自己要学习的东西还有很多. 下面讲用法. Invoke是延时调用函数,在用Invoke函数之前需要引入命名空间using U ... 导读 apache是一款稳定的流行的web软件,是linux操作系统中默认的web管理软件.在RHEL/Centos系列中可以用rpm直接进行安装,服务名为httpd.apache有很多设置和调优 的 ... 用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page ... 在自定义脚本中的方法前加入 [ContextMenu("Execute")] 标签,然后将脚本挂载到对象上,可以再编辑模式下执行标记的方法: 自定义脚本如下: using Sy ... 笔记: 主要发现有两个工具 存档记录一下 https://github.com/OEDx/cocos-jsc-endecryptor python的 解密需要秘钥 推荐这个: https://git ... Unity中Delegate的用法场景 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ... 题目链接:戳我 一看范围1e5,往二分上想. 可是再怎么也没有想到这个神仙的二分答案qwq 我们二分一个数x,设比他大的数为1,小于等于他的数为0.那么我们就可以把原来的那个转化成一个01塔. 然后我 ... 1. 无论是哪个版本的linux,都会提供32位和64位的两个版本的镜像. i386为32位 x86_64为64位 两者的区别: 1)目标:需要大量的内存需求的行业为64位,普通用户的需求为3 ... 题面 传送门 题解 首先区间个数很少,我们考虑把所有区间离散化(这里要把所有的右端点变为\(B_i+1\)代表的开区间) 设\(f_{i,j}\)表示考虑到第\(i\)个学校且第\(i\)个学校必选, ... 1.C与C++的简单区别 1.建立的文件类型不一样,C语言是.c,C++是.cpp 2.引入的头文件不一样 3.C++有命名空间 4.输入输出语句不一样 5.C语言不允许重载,C++可以重载 6.自定 ... 项目 地址: https://gitee.com/sanmubird/springboot-simpleweb.git 项目介绍: 本项目主要有一下内容: 1: springboot yml 配置 ... 1.warmUpExercise: function A = warmUpExercise() %WARMUPEXERCISE Example function in octave % A = WAR ... import React, { Component } from 'react';import { Platform, StyleSheet, Text, View, Navigator, Touch ... 比如新增一个全局的swiper,需要在webpack中配置: 之后在代码中就可以用了 对目录操作例子: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ... 前提: 需要安装Node.js (>6)版本 1.cmd进到本地某个目录, 逐行输入以下指令(以下括号为注释) npm install -g create-react-app (全局安装cr ...
举个
unity 中 protobuff 的用法 一句话攻略的更多相关文章
随机推荐