Unity使用VSCode,调试c#Lua
Posted Liumotor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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代码的踩坑记录 - 知乎
XLua系列讲解_使用VsCode来书写Lua代码
1.首先在 “扩展面板” 中输入“EmmyLua”插件并安装。
2.使用VsCode打开Unity中的Lua脚本文件时候,默认也会出现 “**.lua.meta” 的文件,我们在 “管理->设置->文本编辑器->文件->Files:Exclude” 中通过配置方式过滤掉该类型文件(如下图)。
以上是关于Unity使用VSCode,调试c#Lua的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio Code突然失去了Unity的自动完成功能