70.ProtobufNet概述

  1. 70.消息处理-第三方协议生成工具Protobuf-ProtobufNet
    1. 70.1 知识点
      1. 回顾 Protobuf
      2. Protobuf-Net 是什么
      3. 下载获取 Protobuf-Net
      4. 总结
    2. 70.2 知识点代码

70.消息处理-第三方协议生成工具Protobuf-ProtobufNet


70.1 知识点

回顾 Protobuf

  • Protobuf 全称是 protocol-buffers(协议缓冲区)

  • 它是谷歌提供给开发者的一个开源的协议生成工具

  • 它的主要工作原理和我们之前做的自定义协议工具类似

  • 只不过它更加完善,可以基于协议配置文件生成

  • 支持 C++、Java、C#、Objective-C、PHP、Python、Ruby、Go 等语言的代码文件

  • 我们之前学习了如何使用它,已经能够使用 Protobuf 来配置协议,生成协议,使用协议了。

Protobuf-Net 是什么

  • 早期的 Protobuf 并不支持 C#

  • 国外大神 Marc Gravell 在 Protobuf 的基础上进行了 .NET 环境下的移植

  • 并发布到了 GitHub

  • 让我们可以基于 Protobuf 的规则进行 C# 的代码生成,对象的序列化和反序列化

  • Protobuf-Net 的 GitHub 地址:https://github.com/protobuf-net/protobuf-net

  • 注意:

    • Protobuf 不支持 .Net3.5 及以下版本
      所以如果想在 Unity 的老版本中使用 Protobuf 我们只能使用 Protobuf-Net
      而在较新版本的 Unity 中不存在这个问题
    • 如何判断是否支持?
      只要把 Protobuf 相关 dll 包导入后能够正常使用不报错,则证明支持

下载获取 Protobuf-Net

Protobuf-Net 的 GitHub 地址:https://github.com/protobuf-net/protobuf-net

我们需要在 GitHub 上去获取对应的工程生成后获取:

  • DLL 库文件
  • 根据配置生成脚本的编译器可执行程序

总结

  • Protobuf-net 相对来说是较老的生产方式

  • 但是它可以解决老版本 Unity 使用 Protobuf 的问题

  • 它的使用方式和之前学习的 Protobuf 相关知识类似

  • 只是获取 DLL 文件、protoc.exe 文件的方式不同而已

  • 如果想要详细学习,可以前往 GitHub 看相关说明

  • 在这里我们就不详细讲解了

  • 目前我们使用的较新 Unity 版本直接使用之前学习的 Protobuf 相关知识完成需求即可。


70.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson70_消息处理_第三方协议生成工具Protobuf_ProtobufNet : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 回顾Protobuf

        //Protobuf全称是 protocol-buffers(协议缓冲区)
        //是谷歌提供给开发者的一个开源的协议生成工具
        //它的主要工作原理和我们之前做的自定义协议工具类似
        //只不过它更加的完善,可以基于协议配置文件生成
        //C++、Java、C#、Objective-C、PHP、Python、Ruby、Go
        //等等语言的代码文件

        //我们之前学习了如何使用它
        //已经能够使用Protobuf来配置协议,生成协议,使用协议了

        #endregion

        #region 知识点二 Protobuf-Net是什么

        //早期的Protobuf并不支持C#
        //所以国外大神Marc Gravell在Protobuf的基础上进行了.net环境下的移植
        //并发布到了GitHub
        //让我们可以基于Protobuf的规则进行C#的代码生成,对象的序列化和反序列化

        //Protobuf-Net的Github地址:https://github.com/protobuf-net/protobuf-net

        //注意:
        //1. Protobuf不支持.Net3.5及以下版本
        //   所以如果想在Unity的老版本中使用Protobuf我们只能使用Protobuf-Net
        //   而在较新版本的Unity中不存在这个问题
        //2. 如何判断是否支持?
        //   只要把Protobuf相关dll包导入后能够正常使用不报错,则证明支持

        #endregion

        #region 知识点三 下载获取Protobuf-Net

        //Protobuf-Net的Github地址:https://github.com/protobuf-net/protobuf-net

        //我们需要在Github上去获取对应的工程生成后获取
        //1. DLL库文件
        //2. 根据配置生成脚本的编译器可执行程序 

        #endregion

        #region 总结

        //Protobuf-net相对来说是较老的生产方式
        //但是它可以解决老版本Unity使用Protobuf的问题
        //它的使用方式和之前学习的Protobuf相关知识类似
        //只是获取DLL文件、protoc.exe文件的方式不同而已
        //如果想要详细学习,可以前往Github看相关说明
        //在这里我们就不详细讲解了

        //目前我们使用的较新Unity版本直接使用之前学习的Protobuf相关知识完成需求即可

        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏