Unity项目中如何将Excel的Xml表自动转为ScriptableObject

       由于Unity中推荐的游戏配表数据的储存方式是ScriptableObject,所以我特意制作了一个工具,该工具可以自动将excel表自动转为ScriptableObject.

     

  使用该工具的步骤:

     一.既然是自动转,那excel表的配置就必须符合一定的规范,这个可以理解吧。


Unity项目中如何将Excel的Xml表自动转为ScriptableObject

      

       第一行是变量类型,支持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