https://assetstore.unity.com/packages/slug/99352
1简介
游戏开发中,我们经常使用xlsx文件来编辑大量的游戏常量数据,例如任务、装备配置,
需要使用工具把xlsx数据转化成便于游戏运行时使用的数据。
EasyExcel就是一个帮助你在Unity游戏中方便地使用xlsx数据的插件,它用法简单、特性丰富、设置灵活,并且运行时不依赖第三方库。
它在Unity编辑器中解析xlsx文件,然后生成代码和数据,给游戏运行时使用。
它为excel文件中每个sheet生成一份ScriptableObject代码和一份数据文件。
当游戏运行时,EasyExcel载入生成的数据文件,提供查询数据的API。
安装之后,它的菜单会出现在Unity编辑器菜单栏里:
点击生成代码时,会为xlsx文件中的每个sheet生成一个ScriptableObject类型的代码文件。
点击生成数据时,即为xlsx文件中的每个sheet生成一个ScriptableObject数据文件。
特性:
• 一键快速生成代码和数据
• 支持所有Unity版本,跨平台
• 支持Visual Scripting
• 支持类型int、long、float、string、bool、List、Dictionary
• 支持引擎类型Vector2、Vector3、Rect...
• 支持自定义类型
• 灵活的设置
• 丰富的示例
2文件结构
(1)Xlsx文件
用Hero.xlsx作为例子,它的截图如下。
其中第一页Hero页的前三行被特殊标记,
第一行是变量名(##name标记),
第二行是变量类型(##type标记),
第三行是注释(##标记),
第四行及以下是数据。
因此,Hero页符合约定,会被导入,生成代码(Hero.cs和HeroTable.cs)和数据(Hero.asset)
而另外两页Sheet2、Sheet3前三行没有标记,所以会被忽略。
注意:数据页名不必和文件名相同,且可包含多个数据页。
(2)生成的代码文件
因为Hero.xlsx中只有Hero页有数据,所以只生成了Hero.cs和HeroTable.cs。
Hero类表示Hero页中的一行数据。
HeroTable是Hero数据合集,它包含所有从Hero页导入的数据。
HeroTable是ScriptableObject子类。
(3)生成的数据文件
生成了Hero.asset文件,它是HeroTable类型的ScriptableObject文件,包含了所有Hero数据。
(4)生成的DataTables类
每次生成代码时,还会生成一个数据管理类DataTables.cs。
它负责加载数据和查询数据。
DataTables中包含同步和异步两种Load方法
DataTables中为每种数据都生成了静态方法,来获取数据,如:
DataTables.GetHero(1001)
DataTables.GetHeroList()
注意,在调用这些静态方法前,一定要先完成初始化加载数据。
3运行时API
初始化加载数据
创建DataTables实例,并调用Load完成初始化。
获取数据
Hero示例,取得id为1001的hero配置
取得全部hero配置
4设置
界面
点击EasyExcel/Settings可打开界面。
这里可以设置输入和输出路径,类名规则,Unity的Visual Scripting。
如何开启Visual Scripting
勾选界面中的Visual Scripting
点击Generate Scripts重新生成代码
在ProjectSettings/VisualScripting,把生成的类型加入到TypeOptions中
点击Regenerate Nodes
在Example/Scene/VisualScripting中可以查看示例,
其中示范了调用静态
5示例
预定义类型PredefinedTypes.xlsx
_PredefinedTypes.xlsx是一个固定存在的文件,用它来添加自定义类型。
注意不可以删掉它。
基础类型BasicTypes.xlsx
BasicTypes.xlsx中的BasicTypes页,演示了支持的基础类型:
int、long、float、string、bool、List、Dictionary。
对于List、Dictionary,你可以在类型后写上(sep=;)来指定元素分割符,
如(sep=;)、(sep=#)、(sep=,)。
如果省略(sep=;),则使用默认分隔符‘;’。
自定义类型CustomTypes.xlsx
CustomTypes.xlsx中的CustomTypes页,演示了如何使用自定义类型,这些类型需要首先在_PredefinedTypes.xlsx中定义。
Unity引擎类型UnityEngineTypes.xlsx
UnityEngineTypes.xlsx中的UnityEngineTypes页,演示了如何使用Unity内置类型,这些类型需要首先在_PredefinedTypes.xlsx中定义。
英雄、任务、物品示例
Hero.xlsx中的Hero页,演示了如何配置英雄角色数据,
查看场景文件EasyExcel\Example\Scenes\HeroList.unity
InitializeEasyExcel.cs脚本示例如何初始化和加载数据。
HeroListExample.cs脚本示例获取hero列表并显示出来。
运行时截图如下:
Quest.xlsx中的Quest页,演示了如何配置任务数据,Item.xlsx中的Item页,演示了如何配置道具。其中Quest引用了Item表,查看场景文件EasyExcel\Example\Scenes\QuestList.unity。
可视化编程
场景文件EasyExcel\Example\Scenes\VisualScripting.unity
参照设置(2)中开启Visual Scripting选项。
6技术支持
QQ:1534921818
Mail:1534921818@qq.com
暂无关于此日志的评论。