Unity项目中如何将Excel的Xml表自动转为ScriptableObject
由于Unity中推荐的游戏配表数据的储存方式是ScriptableObject,所以我特意制作了一个工具,该工具可以自动将excel表自动转为ScriptableObject.
使用该工具的步骤:
一.既然是自动转,那excel表的配置就必须符合一定的规范,这个可以理解吧。
第一行是变量类型,支持string,int ,float ,List<int>,List<string>,List<float>六种类型,字符必须严格按照左面写得来;
第二行是变量名,生成之后你在项目里可以直接应用的,如: hero.id ;
第三行是变量中文名,由于生成的ScriptableObject数据显示做了优化,全部用中文显示的,中文名称取自这里;
第一列的变量(上图是"id")默认是每行数据的键值,只支持int类型或string类型,(当然你也不会虎到拿List<T>来做键值),键值在ScriptableObject上会特殊显示,项目中会根据这个来获取数据;
如果变量类型是List<T>的,直接在每个元素之间加逗号就可以,如图;
二.将下载来的脚本放到Editor文件夹里,点选编辑器上的Tools/XmlReader,就会根据所所选的excel表自动生成代表每行数据的类DemoItem类,以及DemoConfig : ScriptableObject类("Demo"取自excel表文件名),和DemoConfigEditor脚本;
三. ScriptableObject上除了全部采用中文显示外,还设置了可全部展开(收起),以及筛选数据等功能;
四,具体使用的方法就是,先自己想办法获取这个DemoConfig,然后DemoConfig.GetItemByID()来获取一行数据,要获取一行中的具体某个数据,就是DemoConfig.GetItemByID().name 。
就这么简单,如有其他需求的朋友可以自己再往上加。
下载地址:https://git.coding.net/tianxieshouhu/XMLReader.git