Closed LiShiZhenDePi closed 1 year ago
使用谷歌官方的protoc编译proto文件后得到二进制pb文件,代码读取pb文件后调用pb.load接口,读取到第二个字符就出错了。 对比了一下protoc:compile()返回的二进制数据,发现其与protoc.exe生成的二进制数据有很大差异。
有差异是正常的,Lua表的顺序是不确定的。但是肯定可以载入。检查一下你的数据在Lua测是不是被0截断了。
感谢作者指点,测试后发现确实是因为数据在lua侧被0截断导致读取失败。 从Unity的AB包(将pb文件打包成AB)读取AssetText,发现读取出来的字符长度远低于pb文件本身的字符长度。 查询lua的官方文档后发现要通过LuaInterface.LuaByteBuffer封装一下才能读取完整的字符。
使用谷歌官方的protoc编译proto文件后得到二进制pb文件,代码读取pb文件后调用pb.load接口,读取到第二个字符就出错了。 对比了一下protoc:compile()返回的二进制数据,发现其与protoc.exe生成的二进制数据有很大差异。