【Unity】Luban学习笔记

个人向笔记。

1 前言

自己学习Luban时的一些笔记,方便以后复习。

2 Unity Luban使用流程

  1. 按照规则,创建并填写配置表。涉及类型定义(excel、xml),数据填写(excel)。
  2. 借助Luban相关工具,结合excel表,生成数据文件、代码文件。
  3. Unity中安装Luban Package。
  4. 将生成的数据文件、代码文件拷贝到Unity项目当中。
  5. 借助Package和生成代码,从数据文件中读取数据反序列化为类对象。
  6. 访问类对象,获取数据。

3 如何填表

参考官方文档。

4 如何根据excel表进行文件生成操作

先从官网下载案例项目luban_examples-main,以此文件夹为根目录来讲解。

使用时,大致可以把Luban分为三部分:

  1. 数据配置。
  2. Luban工具(更具体点:Luban.dll)
  3. 批处理生成相关文件(gen.bat)

解释:

  1. 数据配置,指根目录下的DataTables文件,里面包含了一些配置表与配置文件。
    1. Datas文件夹存储excel表。xxx.xlsx为默认的配置定义表(要被索引到.conf文件,具体见.conf内部),有三种,在__beans__.xlsx中我们可以定义自定义类型,在__enums__.xlsx中我们可以定义枚举类型,在__tables__.xlsx中我们需要给我们创建的配置表去定义一些参数配置。另外,我们自己的表则直接在此文件夹内创建即可(可以在在文件夹内创建,在配置参数时,建议子文件夹作为表的命名空间)。
    2. Defines文件夹内存储.xml文件。而.xml则也是提供各种类型定义的文件,与excel的配置定义类似。
    3. luban.conf文件。配置文件,内部提供了一些相关配置,在索引上索引了Datas文件夹目录、各__xxx__.xlsx配置定义表。同时,此文件还需要被批处理生成文件(gen.bat)所能索引到。
    4. check.bat、check.sh文件。数据校验,应该吧...
  2. Luban工具,指根目录下的Tools文件夹。里面有很多内容,Luban文件夹是官方提供的编译好的Luban本体。其中Tools\Luban\Luban.dll是我们需要与gen.bat索引关联的。
  3. 批处理操作(gen.bat、gen.sh,在MiniTemplate、Projects等文件夹中)。双击执行一系列命令行进行生成操作。需要提前在gen.bat中配置好Datas和Luban.dll的相关索引路径才能正常执行。输出路径也是配置在gen.bat中。还有很多相关命令可以添加,可参考官方文档。

配置完所有,双击gen.bat即可根据excel表生成相关文件。具体为两种文件:数据文件(如json或bytes文件等格式)、代码文件。

5 安装Luban Package

参考官方文档。

6 代码读取表中内容并访问

参考官方文档。文档说得很清晰。

7 其他

7.1 命名空间问题

给表格和类型规划分命名空间时,没有必要把table与此表格使用到的bean类型的放到同一命名空间下,可以分开放,生成功的代码会自动加上各自的命名空间来调用。所以,选择适合自己的划分即可。

7.2 名称问题

非自动导入情况下。tables.xlsx表中,full_name需要写全,即包括命名空间与表名(可选择不要命名空间)。value_type的话,不写命名空间默认与full_name同命名空间,写命名空间则按照自己写的。

7.3 表中空数据收集问题

表分为三种类型,讨论每种类型对于不完全填写的数据的收集情况。

  • 三种表都不会收集空行。
  • One表,单例模式,只能有一行数据。(没测试多行情况)
  • Map表,若缺少ID填写,其他有填写,则生成时报错。
  • List表,情况多种,分是否有Key的情况,暂时没测试。目前理解是,无key则只要一行中有数据就可以收集,若有key则同Map情况。

8 后记

暂时这些。

相关推荐
向宇it18 小时前
【unity小技巧】在 Unity 中将 2D 精灵添加到 3D 游戏中,并实现阴影投射效果,实现类《八分旅人》《饥荒》等等的2.5D游戏效果
游戏·3d·unity·编辑器·游戏引擎·材质
向宇it21 小时前
Unity Universal Render Pipeline/Lit光照材质介绍
游戏·unity·c#·游戏引擎·材质
__water1 天前
RHA《Unity兼容AndroidStudio打Apk包》
android·unity·jdk·游戏引擎·sdk·打包·androidstudio
两水先木示2 天前
【Unity3D】微信小游戏适配安全区域或胶囊控件(圆圈按钮)水平高度一致方案
unity·微信小游戏·安全区域·ui适配·胶囊控件·safearea
枯萎穿心攻击2 天前
ECS由浅入深第三节:进阶?System 的行为与复杂交互模式
开发语言·unity·c#·游戏引擎
不绝1912 天前
怪物机制分析(有限状态机、编辑器可视化、巡逻机制)
网络·游戏·unity·游戏引擎
unicrom_深圳市由你创科技2 天前
Unity开发如何解决iOS闪退问题
unity·ios·蓝桥杯
Yasin Chen2 天前
C# Dictionary源码分析
算法·unity·哈希算法
深海潜水员2 天前
【Behavior Tree】-- 行为树AI逻辑实现- Unity 游戏引擎实现
游戏·unity·c#
Thomas_YXQ3 天前
Unity3D游戏内存优化指南
游戏·unity·职场和发展·性能优化·蓝桥杯·游戏引擎·unity3d