Protobuf在Unity中的通讯使用
代码很简单直接上了
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中的通讯使用相关推荐
- C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信
From: http://www.jb51.net/article/82795.htm 这篇文章主要介绍了C#使用Protocol Buffer(ProtoBuf)进行Unity的Socket通信的实 ...
- UNITY性能优化✨ProtoBuf 在 Unity 中的详细使用教程
文章目录
- unity项目源码_在Unity中使用protobuf
Protocol Buffers (通常简称为protobuf) 是Google开发的一种格式,这种格式与开发语言无关.与运行平台无关,用于序列化结构数据,并且很容易扩展.这种格式可以用于通信协议.数 ...
- 《Dotnet9》系列-Google ProtoBuf在C#中的简单应用
简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Googl ...
- Unity中使用gRPC
时间20180508,使用的unity版本2017.2,unity中的.net 4.6平台还是不稳定版本. 示例代码地址:https://github.com/hiramtan/HigRPC_unit ...
- Unity中使用Protobuf3.0
今天准备在unity中使用protobuf, 但是遇到了一些问题,记录一下. 首先,我们到google protobuf github 上下载工程,主要有两个东西: 1.Protocol Compil ...
- unity中使用protobuf-net
https://blog.csdn.net/u012741077/article/details/51213100 https://blog.csdn.net/u012741077/article/d ...
- Unity中使用Google.Protobuf3,获取dll文件
获取Google.Protobuf.dll文件,有两中方式可以获取,如下: 第一种方法: 获取官方的Google.Protobuf源码: protobuf各个版本下载地址 https://github ...
- Unity中使用ProtoBuf-保姆式教程
·ProtoBuf介绍 ProtoBuf 是结构数据序列化方法,可简单类比于 XML.JSON,其具有以下特点: 语言无关.平台无关.即 ProtoBuf 支持 Java.C++.Python 等多种 ...
最新文章
- Flutter 构建一个完整的聊天应用程序
- php7 mcrypt windows,Windows下php安装mcrypt扩展问题
- 在SqlServer中把多个job生成一个sql脚本
- hdu 4539(状压dp)
- 基于python的视频监控系统_Python实现微信监控报警系统
- php调用window系统自带的命令,比如计算器
- html 监听后端变化_SpringBoot2.0整合WebSocket,实现后端数据实时推送!
- 025Python路--安装第三方模块
- Cisco 3550配置DHCP实例
- OpenCV-膨胀cv::dilate
- 初学者入门——NOI题库1.3
- 保存csdn网页为pdf,防止网页乱码
- 人工智能系列之一人工智能基本流程
- Android 第三方轮播图控件ConvenientBanner:通用的广告栏控件
- 苏格拉底、柏拉图、亚里士多德,走进希腊三贤的世界
- 记一次perl使用lwp获取结果为乱码
- [汉化主题] Knowhow v1.1.16 – 响应式论坛知识库WordPress主题
- c语言的源程序的后缀名是,C语言源程序文件的后缀名是()。
- 深度解读Coatue:向加密行业转舵的「老虎环球基金」
- 质量小议24 -- 帕累托最优
热门文章
- 解决安装jdk后使用cmd校验出现has value '1.8',but'1.7' is required.的方法
- 白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
- jscience中的parse转换
- 在Matlab中使用mex函数进行C/C++混合编程
- MATLAB中常用的产生随机数的几种函数
- 弹簧压缩 时间 matlab,用matlab解决弹簧振子摆动与时间的关系
- 【opencv】边缘提取或通过二值图片提取对应的三维图像(python)
- 【VS+QT开发】获取本地网络信息小软件(C++)
- 牛津花卉数据集贴标签分类
- c语言虚函数是什么,C语言中什么函数不能声明为虚函数?