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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值