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


前言

  • 前面写了一篇文章用于介绍LuBan的下载及快速使用方法:【Unity实战篇】| 实用插件LuBan,快速上手使用
  • 本篇文章就来介绍一下将LuBan集成到自己的Unity项目的方法。
  • 看完本篇文章之后,就可以直接把LuBan插件放到自己项目中进行配表和使用。

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

详细集成步骤

使用说明及下载

luban_examples需下载使用,后面有文件都是从luban_examples中复制使用。

在Unity中导入Package包

在Package Manager中安装com.code-philosophy.luban包,地址 https://gitee.com/focus-creative-games/luban_unity.githttps://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的知识以达到查漏补缺
相关推荐
哈小奇10 小时前
Unity URP管线Linear空间丝绸材质
unity·游戏引擎·材质
哈小奇11 小时前
Unity URP管线Linear空间下玻璃效果
unity·游戏引擎
咕噜企业分发小米15 小时前
如何利用云服务器搭建游戏服务器并实现跨平台游戏?
运维·服务器·游戏
Zhichao_9715 小时前
【UE5.3 C++】ARPG游戏 06-拾取武器
游戏·ue5
极客柒16 小时前
Unity 大地图高性能砍树顶点动画Shader
unity·游戏引擎
九影网络17 小时前
游戏开发耗时有标准吗?核心影响因素与周期范围汇总
游戏
yunteng52117 小时前
游戏逻辑_垂直拆分_增量更新
游戏·aoi·地图优化
2501_9481226319 小时前
React Native for OpenHarmony 实战:Steam 资讯 App 个人中心页面
javascript·react native·react.js·游戏·ecmascript·harmonyos
Younglina19 小时前
想提升专注力?我做了一个web端的训练工具
前端·vue.js·游戏