找回密码
 立即注册
查看: 248|回复: 0

unity xlua protobuf

[复制链接]
发表于 2021-8-12 22:48 | 显示全部楼层 |阅读模式
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  
来源:简书  
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 09:06 , Processed in 0.087462 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表