Rider2018.3.1版本中是可以直接附加Unity,很不错,就是调试有几率崩溃。一直想升级到最新版来解决调试不稳定的问题。但将Rider2018.3.1更新到Rider2020.2.1后,EmmyLua一直无法断点,各种闹心。经过各种百度、Google后找到了两种调试方法:
第一种:直接附加Unity
这个是看到https://www.jianshu.com/p/8b87b3987182 中的介绍才知道的。各种感谢。
Rider2019、Rider2020无法直接附加Unity调试的原因如下:
EmmyLua把打断点的功能分离出来作为了一个独立插件,叫做EmmyLua-AttachDebugger。而之前的1.2.6版本则没有 分离出来这个功能,所以装了EmmyLua直接能打断点的。
1. EmmyLua-AttachDebugger 下载地址:
https://ci.appveyor.com/project/EmmyLua/emmylua-attachdebugger/build/artifacts
2.下载后直接解压到插件目录即可:
...\JetBrains\JetBrains Rider 2020.2.1\plugins
第二种:EmmyDebugger(NEW),需要有Luasocket环境。
本人一周的测试,该种调试非常稳定,Unity没有崩溃问题。唯一不足:每次启动时都需要点击下面Debug按钮或者注释掉dbg.tcpConnect的三行代码。否则Unity被阻塞。
以下为详细配置方法,转自:https://www.jianshu.com/p/5a453a80b7e9
1.Rider 安装 EmmyLua 插件
2.添加调试器
选择Tcp(Debugger connect IDE),也就是IDE作为server,unity作为client,通过socket进行连接,这种好处就是可以在lua启动的入口处既可以进行调试,缺点是,必须先启动调试器,后启动unity。
3.复制调试信息到项目lua启动入口。(我是在lua入口处require了 一个emmylua 的调试脚本)
-- 此处是插件自己的emmy_core.dll的具体位置。如果是团队协作开发的话,建议把路径改为unity的相对目录。
package.cpath = package.cpath .. ';C:/Users/您的用户名/.Rider2019.2/config/plugins/intellij-emmylua/classes/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core') -- 加载动态链接库
dbg.tcpConnect('localhost', 9966)
4.如果使用了xlua的自定义加载(customloader)功能,需要在 customloader的地方对于加载emmy_core的地方跳过,不然emmy_core 会加载失败。
调试
1.启动调试器
2. 启动unity后就可以愉快的调试了。
最后附上《EmmyLua Attach Debugger浅析》的链接,防止以后找不到。
https://zhuanlan.zhihu.com/p/64241347?from_voters_page=true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)