zoukankan      html  css  js  c++  java
  • Unity下调试ToLua(基于IDEA和VSCode)

    公司移动端项目是基于Unity的,底层支持由C#提供,上层Lua调用C#中注册的函数支持来做业务逻辑,框架用的是ToLua。开始做移动端有一段时间了,一直都觉得调试代码是个很蛋疼的体验:几乎都是靠肉眼看代码和加打印来做调试的。季度面谈时反映了下,之前大家都没太在意这个问题也就这么过来了,这次提出来了的话就顺便解决下好了。

    网上搜过相关的问题,可能是因为Lua本身小众语言,能找到的资料相当的少,想配合Unity上调试ToLua的现成工具更甚。(莫不是因为国外用Lua做游戏热更新方案的少所以没人做这方面的开发工具???) 下面整理的两个目前非常流行的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一星期试用,体验倒是蛮好的。
  • 相关阅读:
    JSP前三章测试改错
    实现文件上传
    Url和Uri的区别
    四套读写文件方案
    C++第一课
    数据聚合架构模式
    高并发怎么解决?
    为什么做不了软件架构师
    完整版go-mysql-elasticsearch安装步骤
    安装GO
  • 原文地址:https://www.cnblogs.com/geek1116/p/12584776.html
Copyright © 2011-2022 走看看