Unity_C#中使用protobuf
下载官方protobuf地址:
https://github.com/protocolbuffers/protobuf/releaseshttps://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fprotocolbuffers%2Fprotobuf%2Freleases
protobuf-c#源码生成dll,导入unity
1. 下载最新版
2. VS打开解决方案(protobuf-25.1\csharp\src)
3. 编译生成
Release 模式,然后右键选中 Google.Protobuf -> 生成,可生成需要的 dll 文件。
生成的文件位于 protobuf-22.2/csharp/src/Google.Protobuf/bin/Release/net45 目录下
4. 将以上文件全部导入Unity的Plugins文件夹:
proto文件生成c#文件,导入unity
1. 下载proto-win64版本程序文件
Releases · protocolbuffers/protobuf (github.com)https://github.com/protocolbuffers/protobuf/releases
2. 编写proto文件,新建文本文件,重命名为*.proto
3. 在同文件夹目录新建.bat文件运行生成c#文件
调用运行:
using Google.Protobuf;
using Msg;
using UnityEngine;
public class Test1 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
MessageResult messageResult = new MessageResult();
messageResult.Code = 99;
messageResult.Msg = "success";
// proto消息对象,转换成字节数组
byte[] dataBytes = messageResult.ToByteArray();
// proto消息字节数组,转换成对象
// 第一种方式:实例调用
// IMessage message = new MessageResult();
// MessageResult messageResult1 = (MessageResult)message.Descriptor.Parser.ParseFrom(dataBytes);
// 第二种方式:静态直接调用
MessageResult messageResult1 = (MessageResult)MessageResult.Descriptor.Parser.ParseFrom(dataBytes);
Debug.Log(messageResult1.Code);
Debug.Log(messageResult1.Msg);
}
}