当前位置:首页 > 编程笔记 > 正文
已解决

Unreal UnLua + Lua Protobuf

来自网友在路上 155855提问 提问时间:2023-11-09 07:38:47阅读次数: 55

最佳答案 问答题库558位专家为你答疑解惑

Unreal UnLua + Lua Protobuf

https://protobuf.dev/

protobuf wire format:pb 编译到底层的数据协议

https://github.com/starwing/lua-protobuf/blob/master/README.zh.md

buffer 处理

lua string 可以当 buffer 用,# len 不会遇到 0 截断,注意和 cstring 的区别

UE FString 有点坑

  1. UnLua FString => lua string 用的 lua_pushstring,会遇到 0 截断
  2. FString 本身是带编码的,当 buffer 还是。。

哎,稳妥的做法还是 TArray<uint8> ,这样先把业务跑起来了

这块最好还是手写 Lua C API 来减少传递的 overhead,避免重复拷贝

序列化测试

发现和 C++ PB 序列化出来的结果不一样,咨询了下作者, Lua PB 默认是随机字段顺序

开启 encode_order 即可,不过仅限开发测试用,性能差

pb.option("encode_order")

在这里插入图片描述

proto 管线

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Unreal UnLua + Lua Protobuf":http://eshow365.cn/6-35986-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!