Unity使用VSCode,调试c#、Lua

搭建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#必要插件

直接搜unity3d-pack 这个集合包有很多个插件,其实就够c#开发了。

图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端口号可以自定义,不过要和代码中一致。

图7

图8

 转载链接:首次用VsCode调试unity的c#和lua代码的踩坑记录 - 知乎 

猜你喜欢

转载自blog.csdn.net/Liumotor/article/details/126529457
今日推荐