Unity_C#中使用protobuf

Unity_C#中使用protobuf

下载官方protobuf地址: 

https://github.com/protocolbuffers/protobuf/releasesicon-default.png?t=N7T8https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fprotocolbuffers%2Fprotobuf%2Freleases

protobuf-c#源码生成dll,导入unity

1. 下载最新版

Unity_C#中使用protobuf_第1张图片

 2. VS打开解决方案(protobuf-25.1\csharp\src)Unity_C#中使用protobuf_第2张图片

3. 编译生成

Release 模式,然后右键选中 Google.Protobuf -> 生成,可生成需要的 dll 文件。

生成的文件位于 protobuf-22.2/csharp/src/Google.Protobuf/bin/Release/net45 目录下

Unity_C#中使用protobuf_第3张图片

Unity_C#中使用protobuf_第4张图片

Unity_C#中使用protobuf_第5张图片

 4. 将以上文件全部导入Unity的Plugins文件夹:

Unity_C#中使用protobuf_第6张图片

proto文件生成c#文件,导入unity

1. 下载proto-win64版本程序文件

Releases · protocolbuffers/protobuf (github.com)icon-default.png?t=N7T8https://github.com/protocolbuffers/protobuf/releases

 Unity_C#中使用protobuf_第7张图片

2. 编写proto文件,新建文本文件,重命名为*.proto

Unity_C#中使用protobuf_第8张图片

3. 在同文件夹目录新建.bat文件运行生成c#文件

Unity_C#中使用protobuf_第9张图片

Unity_C#中使用protobuf_第10张图片

调用运行:

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);


    }
}

你可能感兴趣的:(Unity,unity,c#,游戏引擎)