用户登录
用户注册

分享至

unity序列化

  • 作者: 亖呉?盀
  • 来源: 51数据库
  • 2020-10-04
Unity的序列化配表主要是给游戏设计师或关卡设计师调整游戏数据用的,用以改变游戏难度和调整游戏平衡性。
  目前流行的做法是将Excel表格数据转换成Unity中的数据,再由GUI控件显示出来,有很多Unity的Excel插件可以在Asset Store上搜索。
  如果是简单的线性数据可以用 SharpConfig 将其序列化为 INI 文件。
  如果是结构复杂的数据可用 LitJSON 将其序列化为 Json 文件,或者直接使用 System.Xml 序列化为 XML。
  另外有一些更高级的插件和工具,如 Excel2Unity 可以解决从策划配表到程序解析的转换。



  优点
本转化器无需依赖vbs,vba.跨平台

直接输出基于protobuf文本的格式化数据, 直接读取

字段位置随意调整, 自动检查错误, 精确报错位置

充分利用cpu多核进行导出, 是已知的现有导出器中最快的

迭代历程
2011年: 一代导出器,基于vba的表格内建导出器,速度慢,复用困难,容易错,不安全

2012年: 二代导出器,基于c++和protobuf的导出器,内容格式与导出器混合编写,需要vbs导出csv,速度慢

2013年: 三代导出器,在二代基础上做到内容格式与导出器独立,但依然依赖csv前置导出,增加逗号分隔格子内容,导出速度慢

2015年: 四代导出器,基于golang导出器,增加id重复检查,数组格的多重写法, 支持a.b.c栏位导出, 导出速度大大提高

2016年: 五代导出器,在四代基础上重构,开源,支持并发导出,速度达到极致

应用情况
前面多个版本都在本人项目中使用

53个excel源文件, 格式xlsm, 大小3.8m

导出速度

9.4s 第四代导出器

4.9s 第五代导出器单线程

2.4s 第五代导出器i7-4790 8核并发

现在很多朋友都在用, 服务器golang, 客户端c#表示用起来很爽
本人已经8年没再单独解析过配置文件了, 一直用这套做游戏客户端和服务器
软件
前端设计
程序设计
Java相关