跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

VSCode配置Unity开发:代码自动补全与断点调试连接教程

必须禁用旧版C#插件、安装匹配的.NET SDK、由Unity生成.csproj并重载项目,三者缺一不可;否则代码补全失效、断点连不上、跳转失败。 VSCode 能实现和 Unity 的完整协作,但代码补全失效、断点连不上,根本原因不是“没装对插件”,而是插件组合冲突 + .NET SDK 版本错配 + 项目文件未被正确加载——三者缺一不可。 必须禁用旧版 C# 插件,只用 C# Dev Kit 旧版
C#
(ms-dotnettools.csharp)和新版
C# Dev Kit
(ms-dotnettools.csdevkit)会抢夺语言服务器控制权,导致
OmniSharp server is not running
反复报错、
GameObject
类型无提示、
Ctrl+Click
跳转失败或跳到空文件。 在 VSCode 扩展面板中,卸载或禁用
C#
(旧版),仅保留
C# Dev Kit
和
Unity Tools
重启 VSCode 后,状态栏右下角应显示类似
.NET SDK: 6.0.x
或
.NET SDK: 8.0.x
(取决于 Unity 版本) 若仍提示
Could not locate MSBuild instance
,说明本地缺失匹配的 .NET SDK:Unity 2021.3+ 需
.NET 6 SDK
,Unity 2022.3+ 推荐
.NET 8 SDK
,必须从
dotnet.microsoft.com/download
下载安装对应版本(非运行时,是 SDK) Unity 必须生成 .csproj 文件,且 VSCode 要加载它 VSCode 的
C# Dev Kit
不解析 Unity 项目结构,只读取
.csproj
和
.sln
中的引用信息。直接打开
Assets
文件夹或单个脚本,补全必然为空。 在 Unity 编辑器中,勾选
Edit → Preferences → External Tools → Generate .csproj files for Unity projects
点击
Assets → Open C# Project
—— 这是唯一可靠触发完整项目文件生成的操作,不要依赖自动保存或后台编译 生成后检查项目根目录是否出现
Assembly-CSharp.csproj
和
YourProjectName.sln
;没有则说明 Unity 未成功导出 若 VSCode 未自动加载,按
Ctrl+Shift+P
输入
Developer: Reload Window
强制重载 调试必须用 Attach 模式,且 launch.json 要由 Unity 触发生成 手动创建或修改
launch.json
极易出错;VSCode 的 Unity 调试配置需由 Unity 编辑器主动注入上下文,否则会提示
No Unity process found
或
Unable to attach
。 VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 关闭所有 VSCode 窗口 在 Unity 中双击任意 C# 脚本(确保外部编辑器已设为 VSCode),VSCode 将自动启动并生成正确的
.vscode/launch.json
该配置默认为
Attach to Unity
类型,
processId
为
0
,靠
pipeTransport
动态发现 Unity 进程 若已有旧的
launch.json
,建议先删掉再重新双击脚本,避免残留配置干扰 启动调试前,Unity 编辑器右上角应显示
Debugger Attached
提示,否则断点不会命中 Unity Tools 不是可选项,它影响 Editor 类型识别和日志集成
Unity Tools
扩展提供
SerializedProperty
、
EditorWindow
、
ShaderLab
等 Unity 特有类型支持,并把 Unity Console 日志实时推送到 VSCode 的 OUTPUT 面板。不启用它,Editor 脚本几乎无补全,且无法查看运行时日志。 安装
Unity Tools
后,在 VSCode 设置中启用
unity.logIntegration.enabled
检查 VSCode 底部状态栏是否出现
Unity: Connected
,否则可能因项目路径含中文或空格导致初始化失败 若
Debug.Log
不出现在 OUTPUT →
Unity
面板,请确认 Unity 编辑器中
Console
窗口本身有输出,且未过滤掉
Log
级别 最容易被忽略的是:Unity 生成
.csproj
的时机与 VSCode 加载项目的时机不同步。哪怕所有配置都对,只要你在 Unity 导入新资源或修改
asmdef
后没再执行一次
Open C# Project
,VSCode 就会继续用过期的项目模型,导致新添加的命名空间或脚本始终不被识别。

相关文章