使用Xlua热更新框架进行Unity项目开发,不可避免需要对lua代码断点调试功能
参考查到的资料逐步踩坑后整理一下自己的操作流程.
根据现有网上资料汇总 初步有以下几个调试工具和方案
1 VsCode + EmmyLua扩展
1) Attach Debugger
2) Emmy New Debugger
两种调试器 需要配置 launch.json [详情在下一篇笔记中汇总整理]
2 VsCode + luaIde [其中luaIde收费版才支持xlua调试 . 暂未尝试]
3 在Unity中调试Lua:IntelliJ IDEA + EmmyLua [成功采用的方案 可以支持xlua调试 开发 跳转 智能补全等]
本文记录 方法3 IntelliJ IDEA + EmmyLua 的配置流程和操作方法
以下按照流程顺序讲解方案3 .具体视频操作教程在最后百度网盘中. 没有使用 attach to Process.
1 首先安装 Intellij Idea编辑器 IntelliJ IDEA 2020.3 (Community Edition)
官网下载地址 https://www.jetbrains.com/idea/download/#section=windows
2 安装 EmmyLua插件
3 下载 Lua For windows
https://static.runoob.com/download/LuaForWindows_v5.1.4-46.exe
4 安装Lua本地环境 并配置到idea
让idea识别 xlua中的 *.lua.txt文件
5 去除大小写检查
* 只是调试Unity xlua 非必要步骤
想要idea直接运行的lua文件 需要找到luaSDK lua.exe执行文件
6 准备好Untiy xlua项目 并配置lua项目文件的root Floader
7 xlua示例中的 LuaBehaviour 中调用的 DoString() 的写法纠正
xlua文档如是说
示例中代码需要改动成为自己要调试的lua文件名字 (eg 我要调试的是LuaTestScript.lua.txt 此处改为 "LuaTestScript.lua" or "LuaTestScript")
8 配置idea 调试环境
创建一个 EmmyDebugger
此处2个选项 一般用前者即可.先启动Unity运行程序 .再启动debugger去连接 .
下面生产的3行代码放置于要调试的lua脚本顶部. 由Unity启动xlua加载并运行该脚本. 运行了emmy_core.all中tpcListen本地的9966端口
例如这样
9 开始调试
先启动Unity 运行 xluaDemo 02 再启动idea我们配置好的debugger 结果如下 update断点生效
如果未能正常触发断点可尝试强制断点 加一句 dbg.breakHere()
10 .第二种调试配置演示
Debugger Connect IDE 配置 下面Listener() 就变更为 tcpConnect()
同样将这3行代码copy替换到lua文件顶部
然后先启动Debugger 再启动Unity. 等运行到lua文件指定强制断点位置 第9行 .也会触发断点
爬坑答疑.FAQ
Q.按照其他教程演示断点无法触发
A.确认本文 步骤6 xlua项目的root目录的配置方式和生效
确认本文 步骤7 chunkname 是否跟所在断点的lua文件名一致 .在C# doString调用前输出log出来确认一下.
确认本文 步骤8 调试代码 重点是dbg.tcpListen(localhost,"9966") 端口配置是否生效.应当与debugger中的配置一致.而且没有被其他进程占用