
- [【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤](#【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤)

前言
- 前面写了一篇文章用于介绍LuBan的下载及快速使用方法:【Unity实战篇】| 实用插件LuBan,快速上手使用
- 本篇文章就来介绍一下将LuBan集成到自己的Unity项目的方法。
- 看完本篇文章之后,就可以直接把LuBan插件放到自己项目中进行配表和使用。
【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤
详细集成步骤
使用说明及下载
- 官方地址:LuBan
- LuBan地址:GitHub、Gitee
- 示例项目 : (github-luban_examples) (gitee-luban_examples)
luban_examples需下载使用,后面有文件都是从luban_examples中复制使用。
在Unity中导入Package包
在Package Manager中安装com.code-philosophy.luban包,地址 https://gitee.com/focus-creative-games/luban_unity.git或https://github.com/focus-creative-games/luban_unity.git。


编译Luban(可选)
一般来说luban_examples/Tools/Luban目录已经包含了最新的Luban二进制代码。
如果想自己编译,按以下步骤:
将Luban Clone到luban_examples同级目录(即luban和luban_examples在同一个目录下),目录名必须为luban
运行 luban_examples/Tools/build-luban.bat
如果一切顺利,luban_examples/Tools/Luban目录会替换为Luban最新版本的二进制代码。
复制Luban工具到自己的项目
多数项目一般有一个专用目录放这些第三方的工具,比如说 {proj}/Tools,将luban_examples/Tools/Luban复制到任意合适的目录即可。

如下图所示,在Unity项目中新建了一个Tools文件夹,将luban_examples中的LuBan文件夹复制到新建的Tools文件夹下

创建策划配置目录
将luban_examples/MiniTemplate复制到项目的合适位置,如{proj}。建议将MiniTemplate改名为DataTables或者别的名字,MiniTemplates下的子目录建议保持原名。

在Datas中创建或修改Excel配置表,如下所示新建一张reward.xlsx表,内容如下:

然后在__tables__.xlsx中新增一行配置,这样就完成了一次创建配置表的操作。

修改luban.conf
每个项目的Luban工具的位置不同,需要修改gen.bat(或gen.sh)命令中Luban.dll的路径。
假设将MiniTemplate目录复制到了项目的{DataTables}目录。
打开{DataTables}/gen.bat,将set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll中%WORKSPACE%\Tools\Luban\Luban.dll替换成实际的Luban.dll的目录, Luban.dll在Luban工具目录下。
此时运行 {DataTables}/gen.bat,确保可以正确运行。
比如按上面复制的LuBan路径对gen.bat修改如下所示即可使用:

这个gen.bat可以根据自己项目的实际需求进行调整,具体修改含义在上篇文章已做介绍,更多详细信息也可前往官方文档查阅。
生成代码和配置
点击执行gen.bat,如果一切正常,会产生一系列日志,最终一行是 bye~。
危险提示
Luban生成时会删除outputCodeDir目录下的所有其他文件,请为它提供一个单独的目录,千万不要指向Assets/Scripts目录,它会删除掉其他代码文件!outputDataDir同理。

加载和使用配置
只需一行代码即可加载所有配置表。整个游戏运行期间只加载一次(除非要运行中重新加载配置)。实践中在创建tables后将它保存起来,以便后续使用。
在Unity中新建一个Main.cs脚本,内容如下所示:
csharp
using SimpleJSON;
using System.IO;
using UnityEngine;
public class Mian : MonoBehaviour
{
void Start()
{
//加载配置
var tables = new cfg.Tables(LoadConfig);
//使用配置
Debug.Log("== load succ==" + tables.TbReward.Get(1001).Name);
Debug.Log("== load succ==" + tables.TbReward[1001].Name);
//打印整张表
foreach (var n in tables.TbReward.DataList)
{
Debug.Log($"ID:{n.Id};名称:{n.Name};描述:{n.Desc}");
}
}
private static JSONNode LoadConfig(string file)
{
string gameConfDir = Application.dataPath + "/../DataTables/output_json/"; // 替换为gen.bat中outputDataDir指向的目录
return JSON.Parse(File.ReadAllText(gameConfDir + file + ".json", System.Text.Encoding.UTF8));
}
}
将脚本挂载到场景中,即可完成了一次加载和配置的使用。

总结
- 本文介绍了怎样将LuBan工具导入自己的项目以及快速使用,完成了一个最基础的使用流程。
- 实际上LuBan还有很多其他功能,比如本地化、数据校验、各种特性和配表类型等等都是比较实用的功能。
- 更深层次的功能使用和API调用还是需要仔细看下官方文档,集成到Unity中也算是工具使用的第一步。
- 具体使用指南和LuBan的设计思路可以看下官方文档,这里还是建议大概看下,了解学习一下对使用LuBan来说也有帮助。
🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创 🙉
🎄 学习专栏推荐:Unity系统学习专栏
🌲 游戏制作专栏推荐:游戏制作
🌲Unity实战100例专栏推荐:Unity 实战100例 教程
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------




资料白嫖,技术互助
| 学习路线指引(点击解锁) | 知识定位 | 人群定位 |
|---|---|---|
| 🧡 Unity系统学习专栏 | 入门级 | 本专栏从Unity入门开始学习,快速达到Unity的入门水平 |
| 💛 Unity实战类项目 | 进阶级 | 计划制作Unity的 100个实战案例!助你进入Unity世界,争取做最全的Unity原创博客大全。 |
| ❤️ 游戏制作专栏 | 难度偏高 | 分享学习一些Unity成品的游戏Demo和其他语言的小游戏! |
| 💚 游戏爱好者万人社区 | 互助/吹水 | 数万人游戏爱好者社区,聊天互助,白嫖奖品 |
| 💙 Unity100个实用技能 | Unity查漏补缺 | 针对一些Unity中经常用到的一些小知识和技能进行学习介绍,核心目的就是让我们能够快速学习Unity的知识以达到查漏补缺 |
