• 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,可以加一个,格式如下。

    1. {
    2. "workbench.colorTheme": "Default Dark+",
    3. "files.exclude":
    4. {
    5. "**/node_modules": true,
    6. "**/.git": true,
    7. "**/.DS_Store": true,
    8. "**/*.meta": true,
    9. "library/": true,
    10. "local/": true,
    11. "temp/": true,
    12. "*./meta":true,
    13. "*/Library/*":true,
    14. "*.csproj":true,
    15. }
    16. }

    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拷一份出来放到代码中的路径中就可以了。

    1. private void InitEmmyLuaBreakPoint()
    2. {
    3. string path = Directory.GetCurrentDirectory();
    4. if(File.Exists(path + "/emmy_core.dll"))
    5. {
    6. string luaStr = @"local dbg = require('emmy_core') dbg.tcpConnect('localhost', 9966)";
    7. _luaEnv.DoString(luaStr);
    8. }
    9. }

    至于launch.json中的ideconnectdebugger,为ture,需要在代码中先监听指定端口,在用vscode连调(调用dbg.tcpListen),为false,则先启动vscode,再启动代码进行连调(调用dbg.tcpConnect)。而port端口号可以自定义,不过要和代码中一致。

    图7

    图8

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

  • 相关阅读:
    第十七章《MySQL数据库及SQL语言简介》第6节:数据查询
    TypeScript可选链,非空断言操作符,空值合并运算符等
    Intel 芯片 Mac 如何重新安装系统
    NOIP2023模拟12联测33 游戏
    期货我用十年(坚持做期货十年的人)
    Vue脚手架
    【Conda】解决无名虚拟环境问题
    数据结构——经典链表OJ(二)
    C语言开发,指针进阶,字符串查找,包含,拼接
    SIT3485E:3.0V~5.5V 供电,12Mbps 半双工 RS485/RS422 收发器
  • 原文地址:https://blog.csdn.net/Liumotor/article/details/126529457