配置|Luban接入记录
基本信息
[官方文档 | Focus Creative Games (focus-creative-games.github.io)](https://focus-creative-games.github.io/luban/start_up/#安装) |
按要求下载Example项目
目录下luban_examples-main\MiniTemplate是演示项目
luban_examples\MiniTemplate
│ .cache.meta # luban缓存文件
│ gen.bat # bat 生成脚本
│ gen.sh # sh 生成脚本
│
├─Datas # 数据源目录
│ item.xlsx # excel 数据源文件
│ __beans__.xlsx # bean 定义文件,可以使用xml定义代替
│ __enums__.xlsx # enum 定义文件,可以使用xml定义代替
│ __tables__.xlsx # table 定义文件,可以使用xml定义代替
│
├─Gen # 生成的代码目录
├─output_json # 生成的json文件目录
└─Defines
__root__.xml # luban 根文件
可以右键编辑bat脚本
set GEN_CLIENT=dotnet ..\Tools\Luban.ClientServer\Luban.ClientServer.dll
%GEN_CLIENT% -j cfg --^
-d Defines\__root__.xml ^v
--input_data_dir Datas ^
--output_data_dir output_json ^
--output_code_dir Gen ^
--gen_types code_cs_unity_json,data_json ^
-s all
pause
- root.xml
记录了配置信息
<root>
<topmodule name="cfg"/>
<patch name="cn"/>
<patch name="en"/>
<group name="c" default="1"/> client
<group name="s" default="1"/> server
<group name="e" default="1"/> editor
<import name="."/>
<importexcel name="__tables__.xlsx" type="table"/> 相对data目录
<importexcel name="__enums__.xlsx" type="enum"/>相对data目录
<importexcel name="__beans__.xlsx" type="bean"/>相对data目录
<service name="server" manager="Tables" group="s"/>
<service name="client" manager="Tables" group="c"/>
<service name="all" manager="Tables" group="c,s,e"/>
</root>
- input_data_dir
表格数据
- output_data_dir
生成表数据的文件夹
- output_code_dir
生成代码数据的文件夹
- gen_types
生成类型
表格配置
Table
- ##var
属性名称
- ##type
属性类型,需要关注几种特殊用法
int#ref=item.TbItem
引用,会自动生成以下代码
public int UpgradeToItemId { get; private set; }
public item.Item UpgradeToItemId_Ref { get; private set; }
其中item.Item是一行数据类
(list#sep=;),item.ItemExchange
数据列表
Bean
相当于定义Class类,提前定义好后,可以在表格中直接配置
约等于定义了一个ItemExchange类,会存放到指定模块/文件夹中(item)
可以在其他表格中直接使用这个类
导出表
直接运行bat导出即可
装入项目
把MiniTemplate拷贝到Asset同级
把Tool文件内的工具dll拷贝到LuBan同级目录内
..\Tools\Luban.ClientServer
在Asset内创建两个文件夹作为数据存放目录
Assets/LuBan/GenCode
Assets/LuBan/Json
同时修改bat文件
–output_data_dir ..\Assets\LuBan\Json ^
–output_code_dir ..\Assets\LuBan\GenCode^
运行bat后应该可以成功导出
最后再把MiniJson库拷贝到项目中,需要开启代码unsafe模式
luban_examples-main\Projects\Csharp_Unity_bin_or_json\Assets\LubanLib
使用
一行代码加载所有配置
var tables = new cfg.Tables(file =>
JSON.Parse(
File.ReadAllText($"{Application.dataPath}/LuBan/Json" + "/" + file + ".json")
));
然后就可以轻松使用了
var item = tables.TbItem.Get(10000);
Debug.Log($"{item.Id} {item.Name}");
封装一个极简版Manager
public class LuBanManager
{
private static LuBanManager _instance;
public static LuBanManager Instance
{
get
{
if (_instance == null)
{
_instance = new LuBanManager();
}
return _instance;
}
}
public Tables allTables;
public void Init()
{
allTables = new cfg.Tables(file =>
JSON.Parse(File.ReadAllText($"{Application.dataPath}/LuBan/Json" + "/" + file + ".json")
));
}
}