元器件Lua调试

安装VSCode

通过官网下载vscode并进行安装,第一次下载使用的是英文的,不习惯的可以在扩展程序搜索Chinese(Simplified) Language Pack for Visual Studio Code,搜索出来之后进行安装即可;

安装EmmyLua

安装调试lua程序的扩展程序,搜索EmmyLua,然后进行安装,安装好之后在插件安装目录下,会有这个文件emmy_core.dll,这个文件也是后续我们调试Lua将要是用的文件。

VSCode插件默认安装位置:

操作系统 安装路径
windows %USERPROFILE%.vscode\extensions
macOS ~/.vscode/extensions
Linux ~/.vscode/extensions

导入Lua文件夹

将lua代码文件夹拖进vscode打开(或者通过vs -> 文件 -> 打开文件夹…),打开之后可以保存当前目录为一个工作区,方便后面使用;
注意:如果项目Lua文件是通过软链接到Unity工程的,导入的文件夹需要是Unity工程下的Lua的文件夹目录,否则无法正常调试
如下(具体以实际项目为准,以下是虚拟实验室项目Lua所在路径):

设置自动调试配置

进入vscode调试界面,点击创建 launch.json,选择EmmyLua New Debugger。

这里可以配置我们自己的调试的Name, 需要注意这里的端口号,后面启动程序需要用到;

启动调试程序

在Unity中启动lua程序的地方,可在lua文件或者Unity中配置调试启动代码,正常我们只需要lua中配置即可

  • Lua
    在Lua入口文件(虚拟实验室可在:Game_StandAlone.Lua 或Game.lua)中启动
    首先设置Lua库文件搜索路径(路径为EmmyLua安装路径下emmy_core.dll所在目录):

    加载emmy_core并启动调试,注意端口号为调试配置所设置的端口号,需要保持一值。

配置如下,代码只直接复制下面示例代码到脚本里面:

示例代码(该段代码拷到脚本里面会变成中文的‘,需要替换下):
package.cpath = package.cpath .. ‘;C:/Users/Administrator/.vscode/extensions/tangzx.emmylua-0.3.49/debugger/emmy/windows/x64/?.dll’
local dbg = require(‘emmy_core’)
dbg.tcpListen(‘localhost’, 9966)

  • Unity(用于在unity中,启动调试程序,暂时用不到)

    注意:一般情况下,游戏中的lua代码会有一个全局的LuaEnv,使用这个luaEnv进行DoString(),如果使用重新new出来的LuaEnv会连接不上调试的,同时还要注意这了的端口号和我们之前launch.json中的一致;

开始调试

完成以上流程,基本上就可以进行调试了,先启动我们的Unity工程,启动好了之后,在vscode中启动调试(点击EmmyLua New Debug,具体以个人配置为准,以上为默认),这样就可以了。成功启动后,调试控制台将输出连接成功信息。

连接成功后,即可在代码中,设置断点并进行调试。