zoukankan      html  css  js  c++  java
  • 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;


    }

    }

    本博客所有内容均为原创,转载请注明出处.
  • 相关阅读:
    oracle 体系结构 基本表空间介绍
    在用tiles框架的时候现了这样的错误
    java test 1
    SQL 日期函数小总结
    JavaEE 多层模型
    用 java 将文件的编码从GBK 转换成 UTF8收藏
    详解Java日期格式化及其使用例子
    java md5编码
    Tiles框架使用总结
    字符串分组求和收藏
  • 原文地址:https://www.cnblogs.com/what-lee/p/9274311.html
Copyright © 2011-2022 走看看