视频演示链接: https://www.bilibili.com/video/BV1Nw4m1q7qt/
资源文件: https://github.com/asyaB404/ExcelToScriptableObject
上网找了半天都找不到满意的,所以就自己写了一个
本人菜鸟一枚,第一次分享自己的成果,有什么问题或者改进的方式请立即联系我
工具包含一个名为ExcelableScriptableObject.cs的抽象类和ExcelToolsGUI.cs一个工具类
使用前先确保抽象类在项目内,工具类和ExcellDll文件夹在项目中的Editor文件夹内
然后在编辑器窗口就能打开工具了
配置格式为 第一行为字段名 第二行为类型(支持int float bool string 枚举类型) 第三行为注释(随便写
枚举类型在Excel表的格式为 “Enum.枚举名称”
枚举类型需要自己提前创建
支持多个Excel文件,Excel表同时操作
按钮创建SOBJ的原理是先利用IO流直接写一个自定义SOBJ类文件,并继承ExcelableScriptableObject.cs类
自定义SOBJ类的类名取决于Excel表的表名
ExcelableScriptableObject.cs为抽象类,只有一个名为Init(DataRow row)的抽象方法
Init方法作用为根据传入的excel的数据行来进行sobj资源文件的数据初始化
然后根据excel表的第一行和第二行作为自定义SOBJ类的字段和类型同时实现上述的Init方法
Excel表示例图:
自定义类示例图:
等待刚刚创建的SOBJ自定义类编译完成后就能创建SOBJ资源文件了
而按钮创建SOBJ对应的资源文件的原理为,从第四行开始读取Excel表
然后创建资源文件的将Excel表信息行作为参数传入Init方法,完成sobj资源文件的初始化赋值并创建
所以你想自己拓展支持其他数据类型(比如sprite)的话可以自己重写工具生成的SOBJ自定义类中的Init方法
Init(DataRow row)中的row为excel表的数据行,是一个可迭代容器,可以利用row[n].ToString()来得到excel表中数据行的第n+1列的字符串
重写完之后不要再点按钮创建SOBJ,否则会被覆盖到之前的Init方法
然后再在工具那里点击按钮创建SOBJ对应的资源文件就会调用你重写之后的Init方法来创建资源文件