当前位置: 首页 > news >正文

Unity 接入Luabn记录图解

Luban

      • 文档及链接
      • 项目目录
      • UnityEditor 导表工具

文档及链接

官方文档

最新版本

项目目录

接入的方法有很多,我这里随便找了一种

https://gitee.com/focus-creative-games/luban_examples.git

如上图,git拉去后,只保留圈起来的2个文件夹。基础使用已经够了

每个项目工程目录不尽相同,这里及以下根据我自己的项目目录配置,

在Unity平级目录创建一个文件夹,用来存放导表工具Luban

将上面Git保留的2个文件夹放入这个文件夹下,如上图

这个路径下存放的是配置表,将配表填入_tables_.xlsx中,用以生成表数据及代码

这个是生成工具,需要用文档打开,修改为自己路径

set WORKSPACE=..
set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll
set CONF_ROOT=.dotnet %LUBAN_DLL% ^-t client ^-c cs-simple-json ^-c cs-bin ^-d json ^-d bin ^--conf %CONF_ROOT%\luban.conf ^-x cs-simple-json.outputCodeDir=..\Code\Json ^-x cs-bin.outputCodeDir=..\..\ClientFrame\Assets\Game\Scripts\DataTable ^-x json.outputDataDir=..\..\ClientFrame\Assets\DataTable\Json ^-x bin.outputDataDir=..\..\ClientFrame\Assets\Res\Tablepause

这里同时导出了二进制和json,项目中用的是二进制,Json用于自己查表方便。可根据自己需求保留二进制和json
outputCodeDir是导出代码路径
outputDataDir是导出数据路径
可根据自己需求修改路径。

例如:只保留二进制

set WORKSPACE=..
set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll
set CONF_ROOT=.dotnet %LUBAN_DLL% ^-t client ^-c cs-bin ^-d bin ^--conf %CONF_ROOT%\luban.conf ^-x cs-bin.outputCodeDir=..\..\ClientFrame\Assets\Game\Scripts\DataTable ^-x bin.outputDataDir=..\..\ClientFrame\Assets\Res\Tablepause

UnityEditor 导表工具

每次导表需要到项目找到对应文件夹,执行bat,很麻烦。
在UnityEditor 加个工具,直接执行bat导表


using System.Diagnostics;
using System.IO;
using UnityEngine;
using UnityEditor;public class LubanExpand
{[MenuItem("Luban/Export Excel")]public static void ExecuteBat(){// 获取上一级目录var parentPath = Path.GetDirectoryName(Path.GetDirectoryName(Application.dataPath));// 确定 .bat 文件的绝对路径var batFilePath = Path.Combine(parentPath, "Luban/DataTables/gen.bat").Replace("\\", "/" );// 获取.bat文件所在目录var batDirectory = Path.GetDirectoryName(batFilePath);if (!File.Exists(batFilePath)){UnityEngine.Debug.LogError($"Bat file not found: {batFilePath}");return;}try{var processInfo = new ProcessStartInfo{FileName = batFilePath,UseShellExecute = false,          // 不使用系统ShellRedirectStandardOutput = true,    // 重定向输出RedirectStandardError = true,     // 重定向错误CreateNoWindow = false,            // 不创建新窗口WorkingDirectory = batDirectory   // 关键点:工作目录设为.bat所在文件夹};var process = new Process { StartInfo = processInfo };process.Start();// 读取输出(防止进程阻塞)var output = process.StandardOutput.ReadToEnd();var error = process.StandardError.ReadToEnd();process.WaitForExit();AssetDatabase.Refresh();if (!string.IsNullOrEmpty(output))UnityEngine.Debug.Log($"Bat Output:\n{output}");if (!string.IsNullOrEmpty(error))UnityEngine.Debug.LogError($"Bat Error:\n{error}");UnityEngine.Debug.Log("Bat executed successfully!");}catch (System.Exception e){UnityEngine.Debug.LogError($"Failed to execute bat: {e.Message}");}}
}

坑点:上面代码中 WorkingDirectory 是指定工作目录。如果不设置,工作目录会默认是Unity项目的Assets平级目录,gen.bat 里的WORKSPACE 生效错误,无法导出

相关文章:

Unity 接入Luabn记录图解

Luban 文档及链接项目目录UnityEditor 导表工具 文档及链接 官方文档 最新版本 项目目录 接入的方法有很多,我这里随便找了一种 https://gitee.com/focus-creative-games/luban_examples.git如上图,git拉去后,只保留圈起来的2个文件夹。…...

【MySQL】我在广州学Mysql 系列——Mysql 日志管理详解

ℹ️大家好,我是练小杰,今天又是新的一周了,又该摆好心态迎接美好的明天了!!!😆 本文主要对Mysql数据库中的日志种类以及基本命令进行讨论!! 回顾:&#x1f4…...

【线段树 二分查找】P3939 数颜色|普及+

本文涉及知识点 C线段树 C二分查找 P3939 数颜色 题目背景 大样例可在页面底部「附件」中下载。 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的。每只兔子都有一种颜色,不同的兔子可能有 相同的颜色。小 C 把她标号从 1 到 n n n 的 n n n 只兔…...

2011年下半年软件设计师考试上午题真题的详细知识点分类整理(附真题及答案解析)

以下是针对2011年下半年软件设计师考试上午题真题的详细知识点分类整理,涵盖所有题目涉及的核心知识点,供考生背诵记忆: 1. 数据结构与算法 树与图: 树的性质:树的节点数、深度、叶子节点数之间的关系。二叉树遍历&am…...

tmagic-editor,腾讯开源的基于 Vue3 的页面可视化编辑器

hi, 大家好, 我是徐小夕. 之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如: H5-Dooring(页面可视化搭建平台)V6.Dooring(可视化大屏搭建平台)F…...

K8s学习总结

文章目录 介绍Kubernetes 核心组件k8s安装环境安装组件 常用命令测试1. 创建一个测试应用程序2. 检查 Pod 是否运行 3. 暴露应用让外部访问4. 查看服务的暴露端口5. 访问 nginx 服务6. 验证节点调度 如有错误,敬请指针,谢谢! 介绍 Kubernetes&#xff0…...

正则表达式(Regular expresssion)

正则表达式 匹配单次 . :匹配任意一个字符 [ ] :匹配[ ]里举例的任意一个字符 /d :匹配数字0-9 /D :匹配非数字 /s :匹配空白或tab建 /S :匹配非空白 /w :…...

Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask

基于 Flask 框架的 Python Web 开发研究 摘要 在 Web 开发的江湖里,Python 是一位武林高手,而 Flask 则是它手中那把小巧却锋利的匕首。本文以 Flask 框架为核心,深入探讨了它在 Python Web 开发中的应用。通过幽默风趣的笔触,结合实例和表格,分析了 Flask 的特性、优势以…...

MySQL的聚簇索引与非聚簇索引

前言 首先我们要了解到,聚簇索引只能有一个,而非聚簇可以有多个。在本文中可以了解到,范围查询时聚簇索引的优势,以及非聚簇索引在频繁更新时的劣势。   在MySQL中,主键索引通常就是聚簇索引,如果没有显式…...

vscode的一些实用操作

1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容,即可跳转到相应位置。 使用ctrl p,然后输入指定的行号,回车即可跳转到相应行号位置。...

C++11 thread

文章目录 C11 线程库线程对象的构造方式无参的构造函数调用带参的构造函数调用移动构造函数thread常用成员函数 this_thread命名空间join && detachmutex C11 线程库 线程对象的构造方式 无参的构造函数 1、调用无参的构造函数,调用无参的构造函数创建出来的线程对象…...

rabbitmq五种模式的总结——附java-se实现(详细)

rabbitmq五种模式的总结 完整项目地址:https://github.com/9lucifer/rabbitmq4j-learning 一、简单模式 (一)简单模式概述 RabbitMQ 的简单模式是最基础的消息队列模式,包含以下两个角色: 生产者:负责发…...

Qt中基于开源库QRencode生成二维码(附工程源码链接)

目录 1.QRencode简介 2.编译qrencode 3.在Qt中直接使用QRencode源码 3.1.添加源码 3.2.用字符串生成二维码 3.3.用二进制数据生成二维码 3.4.界面设计 3.5.效果展示 4.注意事项 5.源码下载 1.QRencode简介 QRencode是一个开源的库,专门用于生成二维码&…...

Java数据结构---链表

目录 一、链表的概念和结构 1、概念 2、结构 二、链表的分类 三、链表的实现 1、创建节点类 2、定义表头 3、创建链表 4、打印链表 5、链表长度 6、看链表中是否包含key 7、在index位置插入val(0下标为第一个位置) 8、删除第一个关键字key …...

mongodb是怎么分库分表的

在构建高性能的数据库架构时,MongoDB的分库分表策略扮演着至关重要的角色,它通过一系列精细的步骤确保了数据的高效分布与访问。以下是对这一过程的详尽阐述,旨在提供一个清晰且优化过的理解框架。 确定分片键(Shard Key&#xf…...

C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现

八叉树碰撞检测是一种在三维空间中高效处理物体碰撞检测的算法,其原理可以类比为一个管理三维空间物体的智能系统。这个示例包含两个部分:八叉树部分用于宏观检测,AABB用于微观检测。AABB可以更换为均值或节点检测来提高检测精度。 八叉树的…...

spring boot对接clerk 实现用户信息获取

在现代Web应用中,用户身份验证和管理是一个关键的功能。Clerk是一个提供身份验证和用户管理的服务,可以帮助开发者快速集成这些功能。在本文中,我们将介绍如何使用Spring Boot对接Clerk,以实现用户信息的获取。 1.介绍 Clerk提供…...

一种动态地址的查询

背景 当我们注入一个进程,通过函数地址进行call时经常会遇到这样的一个问题。对方程序每周四会自动更新。更新后之前的函数地址就变化了,然后需要重新找地址。所以,我就使用了一个动态查询的方式。 第一步:先为需要call的函数生…...

周雨彤:用角色与生活,诠释审美的艺术

提到内娱审美优秀且持续在线的女演员,周雨彤绝对是其中最有代表性的一个。 独树一帜的表演美学 作为新生代演员中的实力派代表,周雨彤凭借细腻的表演和对角色的深度共情,在荧幕上留下了多个令人难忘的“出圈”形象。在《我在他乡挺好的》中…...

使用jks给空apk包签名

1、在平台官方下载空的apk包(上传应用时有提醒下载) 2、找到jdk目录,比如C:\Program Files\Java\jdk1.8\bin,并把下载的空包apk和jks文件放到bin下 3、以管理员身份运行cmd,如果不是管理员会签名失败 4、用cd定位到…...

解锁论文写作新境界:书匠策AI,你的数据分析超级大脑!

在学术的浩瀚海洋中,每一位论文写作者都是勇敢的探索者,而数据分析则是那把开启未知宝藏的钥匙。但面对繁琐的数据处理、复杂的统计分析,你是否常常感到力不从心?别怕,今天我要给大家揭秘一位论文写作路上的超级助手—…...

渔人的直感:FF14钓鱼计时器终极指南与使用教程

渔人的直感:FF14钓鱼计时器终极指南与使用教程 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 你是否曾经在《最终幻想14》的钓鱼过程中因为错过最佳提竿时…...

W3x2lni如何解决魔兽争霸III地图格式兼容性难题?

W3x2lni如何解决魔兽争霸III地图格式兼容性难题? 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 魔兽争霸III地图开发者面临的最大挑战之一就是地图文件在不同编辑器、版本和发布平台之间的格式兼容性…...

Wecom酱:企业微信消息推送开源方案全解析

Wecom酱:企业微信消息推送开源方案全解析 【免费下载链接】wecomchan 微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。 项目地址: https://gitcode.com/gh_mirrors/we/wecomchan Wecom酱是一…...

Excel也能搞定回归分析?教你用数据分析工具库做F检验和方差分析表

Excel也能搞定回归分析?手把手教你用数据分析工具库完成F检验与方差分析 对于非技术背景的业务分析师来说,统计软件的门槛常常让人望而却步。但你可能不知道,Excel内置的"数据分析"工具库就能完成专业的回归分析,包括关…...

别急着重装!Pacman 报‘invalid or corrupted package’错误的深层原因与一键修复脚本

深入解析Pacman报invalid or corrupted package错误:从原理到自动化修复 当你长时间未更新Arch Linux系统后执行pacman -Syu,突然看到鲜红的错误提示"invalid or corrupted package"时,那种感觉就像准备开车出门却发现钥匙生锈了—…...

Android Studio 升级后编译报错?手把手教你解决 minCompileSdk 版本冲突(以 appcompat 1.4.1 为例)

Android Studio升级后的minCompileSdk版本冲突全解析:从快速定位到长效预防 每次Android Studio或Gradle插件升级后,总有些"惊喜"等着我们。最近不少开发者反馈,项目在毫无改动的情况下突然编译失败,报出令人困惑的minC…...

大语言模型推理中的动态计算资源分配优化实践

1. 项目背景与核心挑战大语言模型推理过程中的计算资源分配一直是工业界和学术界关注的焦点问题。传统静态分配方案往往面临两大困境:一方面,固定分配的计算资源无法适应输入序列长度的动态变化,导致短文本推理时资源闲置;另一方面…...

使用Taotoken后如何通过控制台观测各模型的Token消耗情况

使用Taotoken后如何通过控制台观测各模型的Token消耗情况 1. 控制台用量看板概览 Taotoken控制台提供了直观的用量看板功能,用户登录后可在「用量统计」页面查看所有API调用的Token消耗明细。该看板默认展示最近7天的数据,支持按小时、天、周、月等时间…...

0.1B参数跑TTS,8B参数超越30B模型:MOSS这波音频双杀,有点离谱

你敢信吗?一个0.1B参数的TTS模型,能在CPU上跑实时语音合成,MacBook Air单核就能流畅运行。 更离谱的是,同一个团队还搞了个8B的音频理解模型,在通用音频理解榜单上直接把一众30B的模型按在地上摩擦。 OpenMOSS团队这一…...