代码很简单直接上了

using ProtoBuf;
using UnityEngine;
using System.IO;
using System;

public class Test2 : MonoBehaviour
{

private void Start()
{
NetModel item = new NetModel()
{
ID = 1,
Commit = "LZ",
Message = "Unity"
};

byte[] result = Serialize<NetModel>(item);

NetModel backIns = DeSerialize<NetModel>(result);
Debug.Log(backIns.ID);
Debug.Log(backIns.Commit);
Debug.Log(backIns.Message);

}

public byte[] Serialize<T>(T classValue)
{

try
{
using (MemoryStream memory = new MemoryStream())
{
Serializer.Serialize<T>(memory, classValue);
byte[] result = new byte[memory.Length];
memory.Position = 0;
memory.Read(result, 0, result.Length);
return result;
}
}

catch (Exception e)
{
Debug.Log(e);
return null;
}

}

public T DeSerialize<T>(byte[] value) //where T : class // 这里可以做个约束class类型, 也可以做个基佬,让所有序列化类继承之再去约束这个类更安全
{

try
{
using (MemoryStream ms = new MemoryStream())
{
ms.Write(value, 0, value.Length);
ms.Position = 0;
return Serializer.Deserialize<T>(ms);

}
}
catch(Exception e)
{
Debug.Log("Error:"+e);
return default(T);
}

}

[ProtoContract]
public class NetModel
{
[ProtoMember(1)]
public int ID;
[ProtoMember(2)]
public string Commit;
[ProtoMember(3)]
public string Message;

}

}

转载于:https://www.cnblogs.com/what-lee/p/9274311.html

Protobuf在Unity中的通讯使用相关推荐

  1. C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信

    From: http://www.jb51.net/article/82795.htm 这篇文章主要介绍了C#使用Protocol Buffer(ProtoBuf)进行Unity的Socket通信的实 ...

  2. UNITY性能优化✨ProtoBuf 在 Unity 中的详细使用教程

    文章目录

  3. unity项目源码_在Unity中使用protobuf

    Protocol Buffers (通常简称为protobuf) 是Google开发的一种格式,这种格式与开发语言无关.与运行平台无关,用于序列化结构数据,并且很容易扩展.这种格式可以用于通信协议.数 ...

  4. 《Dotnet9》系列-Google ProtoBuf在C#中的简单应用

    简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Googl ...

  5. Unity中使用gRPC

    时间20180508,使用的unity版本2017.2,unity中的.net 4.6平台还是不稳定版本. 示例代码地址:https://github.com/hiramtan/HigRPC_unit ...

  6. Unity中使用Protobuf3.0

    今天准备在unity中使用protobuf, 但是遇到了一些问题,记录一下. 首先,我们到google protobuf github 上下载工程,主要有两个东西: 1.Protocol Compil ...

  7. unity中使用protobuf-net

    https://blog.csdn.net/u012741077/article/details/51213100 https://blog.csdn.net/u012741077/article/d ...

  8. Unity中使用Google.Protobuf3,获取dll文件

    获取Google.Protobuf.dll文件,有两中方式可以获取,如下: 第一种方法: 获取官方的Google.Protobuf源码: protobuf各个版本下载地址 https://github ...

  9. Unity中使用ProtoBuf-保姆式教程

    ·ProtoBuf介绍 ProtoBuf 是结构数据序列化方法,可简单类比于 XML.JSON,其具有以下特点: 语言无关.平台无关.即 ProtoBuf 支持 Java.C++.Python 等多种 ...

最新文章

  1. Flutter 构建一个完整的聊天应用程序
  2. php7 mcrypt windows,Windows下php安装mcrypt扩展问题
  3. 在SqlServer中把多个job生成一个sql脚本
  4. hdu 4539(状压dp)
  5. 基于python的视频监控系统_Python实现微信监控报警系统
  6. php调用window系统自带的命令,比如计算器
  7. html 监听后端变化_SpringBoot2.0整合WebSocket,实现后端数据实时推送!
  8. 025Python路--安装第三方模块
  9. Cisco 3550配置DHCP实例
  10. OpenCV-膨胀cv::dilate
  11. 初学者入门——NOI题库1.3
  12. 保存csdn网页为pdf,防止网页乱码
  13. 人工智能系列之一人工智能基本流程
  14. Android 第三方轮播图控件ConvenientBanner:通用的广告栏控件
  15. 苏格拉底、柏拉图、亚里士多德,走进希腊三贤的世界
  16. 记一次perl使用lwp获取结果为乱码
  17. [汉化主题] Knowhow v1.1.16 – 响应式论坛知识库WordPress主题
  18. c语言的源程序的后缀名是,C语言源程序文件的后缀名是()。
  19. 深度解读Coatue:向加密行业转舵的「老虎环球基金」
  20. 质量小议24 -- 帕累托最优

热门文章

  1. 解决安装jdk后使用cmd校验出现has value '1.8',but'1.7' is required.的方法
  2. 白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
  3. jscience中的parse转换
  4. 在Matlab中使用mex函数进行C/C++混合编程
  5. MATLAB中常用的产生随机数的几种函数
  6. 弹簧压缩 时间 matlab,用matlab解决弹簧振子摆动与时间的关系
  7. 【opencv】边缘提取或通过二值图片提取对应的三维图像(python)
  8. 【VS+QT开发】获取本地网络信息小软件(C++)
  9. 牛津花卉数据集贴标签分类
  10. c语言虚函数是什么,C语言中什么函数不能声明为虚函数?