使用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 .第二種調試配置演示
注意degger配置一定要遵守上面顯示的代碼 這里使用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中的配置一致.而且沒有被其他進程占用
相關文件下載(帶視頻演示)
鏈接: https://pan.baidu.com/s/1ipuWGyIG0HxnuXx3ttiofg 提取碼: sbqm