本文仅解决编辑时导入的问题,不解决运行时导入的问题。本文只讲方法,不包含源代码。
另外,所有数据应该只在编辑时导入,因为使用unity原生的数据格式载入效率高,在运行时载入excel数据应该避免。
目前Unity资源商店里面没有特别好的excel插件。所以建议每个公司都做一个内部的“插件”,专门用于解决这个问题。
excel表格的作用在于,当一个数据有很多行的时候,例如,角色的等级数据有99个等级的话,不方便手动填入到MonoBehaviour/ScriptableObject的数据里面。这时候有一个导入excel数据表的功能就会非常重要。
读取excel表格注意:
- 请勿使用插件FlexReader,因为FlexReader的代码充满了BUG。修复这些问题所需要的时间加起来,还不如自己写节省时间。
- 使用库ExcelDataReader读取数据,是非常方便的。
导入流程非常的简单:
- 将Excel的表格转换为Json字符串
- 使用JsonUtility转换为自定义数据类型
如下表内容:
等级 | 经验 | 攻击力 | 防御力 |
---|---|---|---|
_exp | _attack | _defense | |
1 | 200 | 1 | 2 |
2 | 300 | 2 | 3 |