rustum 发表于 2022-3-29 07:53

首次用VsCode调试unity的c#和lua代码的踩坑记录

rider突然不能认证了,vs又太卡,作为一个unity小开发,瞬间懵逼了。想到同事很多用vscode,决定装个过渡一下。谁料遇到好些坑,花了几个小时才解决完,还是记录一下,避免之后踩坑吧,我太难了!
一、VsCode环境搭建

官方下载链接,靠谱:Visual Studio Code - Code Editing. Redefined
下载后按提示安装就好,没啥好说得。
二、搭建C#调试环境

2.1 settings.json文件查找与过滤不想看到的文件

       vscode首次打开unity工程后,所有文件都会现在在资源管理器中,鱼龙混杂,这自然是不能忍的,网页的教程说是 Ctrl+P,找到settings.json,过滤下不想看到的文件即可,然而首次打开的我却怎么也搜不到这个json文件,找了半天,还是老实的按流程来找吧。
       依次打开 文件->首选项->设置,在设置界面中输入settings,这时候谁便点击一个标签如图1所示,在即有超链接提示的settings.json,即跳转到了这个文件,之后就可以ctrl+P 的方式搜索到了 --!



图1

之后就可以在以下代码快中设置过滤的文件了,在files.exclude下设置,没有这个key,可以加一个,格式如下。
{
    "workbench.colorTheme": "Default Dark+",

   "files.exclude":
   {
          "**/node_modules": true,
          "**/.git": true,
          "**/.DS_Store": true,
          "**/*.meta": true,
          "library/": true,
          "local/": true,
          "temp/": true,
          "*./meta":true,
          "*/Library/*":true,
          "*.csproj":true,
    }
}2.2 安装C#必要插件

      资源管理器少了很多无用的文件,舒服多了。接下来,***,c#代码没有提示,这让小白下怎么愉快的编程。
这时候,就得安装一些什么必要的插件了,如图2所示。



图2

       首先点击图2红框处的插件扩展项,一次安装以下插件:
            1)C#。必不可少的c#高亮,.net core的语义提示;
            2)Auto-Using for C#。自动导入尚未引入项目的c#代码的只能提示;
            3).NET Core Tools。快速打开一个.net core工程;
            4)C# XML Documentation Comments。快速生成C#代码文档;
            5)Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code。汉化插件;
            6)Debugger for Unity。调试unity c#代码的必备插件。
       除了以上插件外,使用过程中vscode也会通过在右下角菜单提示一些报错,安装一些.net framework sdk等,按照提示安装就好,需要注意的是,部分插件可能需要重启电脑才能生效。
       有的时候也会在启动工程的时候,在日志中提示,如果有问题,大家在日志中找找线索,如图3所示



图3

2.3 调试C#

       插件都装好了,一案调试,***,没反应。不能忍!
       看来些网上的帖子,原来这货调试还要生成launch.json文件。该如何做呢?
       首先,点击菜单调试图标,如图4所示;
       其次,点击运行和调试,选择环境处点击Unity Debugger;如图5所示。这里需要注意的是有的时候UnityDebugger会不显示出来,多按这个流程试几次就好;
       最后,在运行和调试处,选择unity editor,点击运行就可以调试了。如图6。至于调试器的名字可以在launch.json中随意调整,就不多说了。



图4



图5



图6

2.4 调试lua

做unity开发的基本都会用到lua语言,比较常用的热更语言。自然调试需求是必不可少的。
首先,仍然是安装必要插件,这里需要EmmyLua 这个插件就好。不了解的话可以看看介绍,它仅能提供lua代码调试还能增加代码提示,非常好用;
接下来要像调试c#时的设置一样,添加lua debugger, emmylua new debug,如图7所示,添加后launch.json新增如图7配置。
配置好launch.json还不够,还要在我们的代码里加上一些逻辑。代码如下所示,其中_luaEnv是LuaEnv实例,而emmy_core.dll在vscode安装emmylua插件的地方,本人安装目录如图9所示。大家把emmy_core.dll拷一份出来放到代码中的路径中就可以了。
private void InitEmmyLuaBreakPoint()
{
    string path = Directory.GetCurrentDirectory();
    if(File.Exists(path + "/emmy_core.dll"))
    {
      string luaStr = @"local dbg = require('emmy_core') dbg.tcpConnect('localhost', 9966)";
      _luaEnv.DoString(luaStr);
    }
}
至于launch.json中的ideconnectdebugger,为ture,需要在代码中先监听指定端口,在用vscode连调(调用dbg.tcpListen),为false,则先启动vscode,再启动代码进行连调(调用dbg.tcpConnect)。而port端口号可以自定义,不过要和代码中一致。
至此,lua的调试也搞定了!



图7



图8



图9

三、结语

写文章记录一下,助力快速搭建环境少踩坑,希望对大家有帮助!
页: [1]
查看完整版本: 首次用VsCode调试unity的c#和lua代码的踩坑记录