今天介绍一下如果用Idea调试xlua项目。
一.首先,从Idea新建一个lua空项目。这里命名为xluaDebug。
二.然后将已有xlua项目(腾讯官方xLua-master项目)导入到新建好的xluaDebug项目。
1.打开File->Project Structure->Modules,点击右侧“Add Content Root”,填写xLua-master项目的lua目录,我这里是“E:\WorkPlace\xLua-master\Assets\XLua\Examples”,OK确定。
2.设置某个案例场景的源码目录,我这里选择“02_U3DScripting”文件夹,然后点击上侧的Sources按钮,OK。
三.调试方式一
1.点击Run->Edit Configurations,点击上侧加号,然后从下拉列表中选择“Emmy Debugger(NEW)”,新建一个配置项,参数如下:
2.记得复制上面提供的lua代码:
package.cpath = package.cpath .. ';C:/Users/Admin/.IntelliJIdea2019.3/config/plugins/intellij-emmylua/classes/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpListen('localhost', 9966)
dbg.waitIDE() --让Unity停下来等待Idea开启调试
dbg.breakHere() --硬断点,强制等待
3.粘贴至要调试的lua代码头部位置:
4.先运行Unity场景,Unity会作为服务器,等待Idea开启Debug,点击Debug按钮开始调试。
四.调试方式二
1.点击Run->Edit Configurations,点击上侧加号,然后从下拉列表中选择“Emmy Debugger(NEW)”,新建一个配置项,参数如下:
2.记得复制上面提供的lua代码:
package.cpath = package.cpath .. ';C:/Users/Admin/.IntelliJIdea2019.3/config/plugins/intellij-emmylua/classes/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpConnect('localhost', 9966)
dbg.breakHere()
3.粘贴至要调试的lua代码头部位置:
4.先点击Debug按钮开始调试,Idea会作为服务器,等待Unity场景运行。
发现的缺点:1.和普通的断点含义不一样,lua脚本每执行一步都是一个断点,所以不需要我们手动打断点,打了也没用。2.如果关闭了调试,需要重新运行Unity场景才能开启下一次调试。
欢迎加群讨论:805629309