一:前言
因为工作需要,程序要求和策划,编剧对接时,一般以excel文件交接,但是如果直接存取excel文件,则会导致占的内存过多,于是,将excel文件转化成unity自带的ScriptableObject格式势在必行,ScriptableObject的读取非常便利,可以大大的优化效率。
此文章将在此基础上导入excel文件时自动创建相关的class文件和scriptObject文件,并此附上更新的插件资源链接:【免费】Unity导入Excel文件自动创建class文件和ScriptObject文件,并转化成ScriptObject的插件pro版资源-CSDN文库
百度网盘:链接: https://pan.baidu.com/s/10H5ikNh_bB4BTBXnMxXlWg?pwd=ssid
提取码:ssid
二:实现
1.先将插件导入项目
![](https://img-blog.csdnimg.cn/direct/bb25b044e5b44654ae3cff9351699935.png)
2.导入要转化的Excel文件(文件夹随意)
但是转化出的ScriptObject文件会跟它会在同一个文件夹里,且会与Excel同名。
测试Excel文件叫DialogData,文件中有一个表格名叫dialogNodes,表格中第一行是对象的属性,最后一格是将要创建的class名,表格中第二行是对象属性的类型,第三行是属性的中文解释(第三行不做处理,仅仅作为中文注释参考),后面几行直到空行之前都会进行数据导入,数据类型和导入支持枚举类,但不能创建枚举类,只可导入,所以枚举类得先创建好,这是一个可优化点,可能在未来的时间内解决。
3.自动创建对应的可序列化的对象类
本插件的自动创建本来想在导入前实施的,但是偶现只重新创建了类,但未进行数据导入,只能重新按一次。
所以改进了一下,每次重新更改excel文件不会触发类的创建,只会触发数据的导入。需要重新创建类时,我把按钮加在unity导航栏上,有需要再创建。
下面是自动创建的DialogData文件,里面包含了两个类,DialogNode,DialogData
4.自动创建scriptObject文件和数据导入
每次更改excel文件之后,都会自动进行数据导入,或者点击文件的重新导入也可触发数据导入逻辑。
新导入的数据文件
文件内容
此版本新增导入数据可修改性,但是要注意的是在此处更改没有在excel文件中更改的话,excel文件的重新导入将会覆盖数据。
三:结语
插件的开发将会继续,目标是为游戏数据的导入增加便利性,且插件每有重大更新时我都会把更新情况发至这个平台,如若喜欢这个插件,你的关注就是对我最大的激励!感谢!