Unity下調試ToLua(基於IDEA和VSCode)


公司移動端項目是基於Unity的,底層支持由C#提供,上層Lua調用C#中注冊的函數支持來做業務邏輯,框架用的是ToLua。開始做移動端有一段時間了,一直都覺得調試代碼是個很蛋疼的體驗:幾乎都是靠肉眼看代碼和加打印來做調試的。季度面談時反映了下,之前大家都沒太在意這個問題也就這么過來了,這次提出來了的話就順便解決下好了。

網上搜過相關的問題,可能是因為Lua本身小眾語言,能找到的資料相當的少,想配合Unity上調試ToLua的現成工具更甚。 下面整理的兩個目前非常流行的IDE上調試ToLua的方法,一個是VSCode,另一個是IDEA。下文中提到的IDEA插件和LuaDebug.lua文件懶得找的話這里自取:https://pan.baidu.com/s/1ExDPuQSnuMtZ7E4RZjl_YQ 提取碼:72be

IDEA + EmmyLua插件配置調試Unity

  1. 安裝好IDEA

  2. 安裝EmmyLua插件。在啟動界面選擇插件,然后選擇從本地磁盤安裝 或者進去后在插件商店里搜索安裝。



    然后重啟IDEA。


  3. 創建新的Lua工程或選擇從已有文件夾打開工程。

  4. 將目錄設為Sources Root:

  5. 添加調試配置:




    (1)給該配置隨便命個名
    (2)按其要求將下面框內的代碼復制到lua的程序入口文件中(一般是工程Lua根目錄下的Main.lua文件 如:./xxx/Lua/Main.lua)
    (3)、(4) 保存

    這一步驟是為了在游戲運行時啟動一個監聽9996端口的進程,用於在IDEA中調試代碼。

  6. 先在Unity中啟動游戲,再在IDEA里選擇對應調試配置啟動Debug:



VSCode插件 LuaIDE-lite調試ToLua

  1. 在VSCode的插件商店里搜索luaide安裝該插件:

    其中上面的第一個是收費版的,費用五塊錢一個月蠻便宜的,喜歡VSCode做生產工具推薦還是用這個。雖然下面介紹的是免費的luaide-lite的配置,但luaide的配置幾乎也差不多。

  2. 把LuaDebug.lua放到腳本目錄里,和作為程序入口的lua文件同級(一般是工程Lua文件根目錄下的Main.lua 如:./xxxx/Lua/Main.lua)。這是用作調試的主文件。

3.在Main.lua中加入下面語句,用於調用LuaDebug:
local BREAKINFOFUNC, XPCALLFUNC = require("LuaDebug")("localhost", 7003)
coroutine.start( function() while true do coroutine.wait(0.1) BREAKINFOFUNC() end end)
(第一個參數是調試設備的地址,本地調試所以填的localhost;第二個端口參數用默認的7003就好了)


4. 確保LuaSocket開啟。該項在LuaWraps下的LuaConst.cs文件里:

5. 生成調試配置:

選擇Unity-Remote(Lua):

注意:先運行(F5) VSCode上的調試再在Unity啟動游戲。
掛斷點調試:變量檢視、調用堆棧,可直接在代碼上鼠標懸停查看變量值。

繼續執行(F5)、逐過程(F10)、逐語句(F11);跳轉到定義(F12)、查看所有引用(Shift+Alt+F) 等常用快捷鍵跟Visual Studio大都相同。


另外再說一下,luaide-lite畢竟免費,看更新日志作者應該也沒怎么維護,我機子上跑超級吃內存=_=...而且插件啟動時經常會崩...;后面用luaide一星期試用,體驗倒是蠻好的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM