zoukankan      html  css  js  c++  java
  • unity xlua protobuf

    https://www.jianshu.com/p/d997e1f5e2ed

    项目后期接入xlua,做代码的热更新。其中项目要求是任何逻辑都可以被热更,也可以完全的新增任何功能。其中消息用的是protobuf。
    因为google 的protobuf c# 版本需要先对消息进行序列化好,然后作为c# 类使用的。但是这样非常的不利于做代码的热更新。
    所以决定把pb接入到xlua里。看了下xlua 作者已经提供了集成pb的GitHub。
    链接 https://github.com/chexiongsheng/build_xlua_with_libs

    关于集成其他库 git上说的很清楚了。
    这要是记录一下怎么使用
    xlua hotfix 等配置好之后,在c# 侧初始化的时候调用
    Luaenv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf);

    main.lua 加载protobufmain.lua
    protobufmain.lua :
    -- 核心解析
    pb = require "pb"
    -- 添加protoc
    protoc = require "protobuf.protoc"

    -- 监听消息-》解析
    -- 此处是监听c# 原有的网络层回调,是一串二进制消息体
    luadencode = require "protobuf.prasemsg"
    luadencode.init()

    -- 此处添加消息结构,也就是proto消息结构体
    -- protoc:load(消息内容字符串)
    protobuf = require "protobuf.proto"
    protoc:load (protobuf.allmsg)

    转化为二进制
    byte[] msg = pb.encode(msgname, msgcontent)

    二进制转换为表
    msgtabel = pb.decode(msgname, msgcontent)



    作者:Jayden_JMN
    链接:https://www.jianshu.com/p/d997e1f5e2ed
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    codevs2606 约数和问题
    UOJ150 运输计划
    codevs1279 Guard 的无聊
    codevs1997 守卫者的挑战
    codevs1291 火车线路
    codevs1217 借教室
    codevs1281 Xn数列
    codevs1218 疫情控制
    codevs1199 开车旅行
    BZOJ1941 [Sdoi2010]Hide and Seek
  • 原文地址:https://www.cnblogs.com/nafio/p/12370172.html
Copyright © 2011-2022 走看看