<p>必须使用C# Dev Kit替代旧版C#插件,安装匹配的.NET SDK(如Unity 2021.3+配.NET 6),并确保Unity生成.csproj文件;禁用冲突插件、重载项目、启用Unity Tools才能实现完整智能提示与调试。</p>

VSCode 能提供接近 Visual Studio 的 Unity C# 开发体验,但默认安装后几乎不工作——代码没提示、跳转失效、断点连不上,根本原因不是插件装少了,而是插件组合错了、.NET SDK 版本不匹配、项目文件没被正确生成。
必须用 C# Dev Kit,禁用旧版 C# 插件
2024 年底起,微软已将 C# Dev Kit(ms-dotnettools.csdevkit)定为官方主力 C# 扩展,它内置 OmniSharp、.NET SDK 管理和 Unity 专用语言服务。继续启用旧版 C#(ms-dotnettools.csharp)会导致语言服务器冲突,表现为:
-
OmniSharp server is not running错误反复出现 - Unity 类型(如
GameObject、Transform)完全无提示 - Ctrl+Click 跳转定义失败,或跳到空文件
实操建议:
- 在 VSCode 扩展面板中,禁用或卸载
C#(旧版),只保留C# Dev Kit和Unity Tools - 重启 VSCode 后,状态栏右下角应显示
.NET SDK: 6.0.x或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 下载并安装对应版本
必须让 Unity 生成 .csproj 文件并重载项目
VSCode 的 C# Dev Kit 不会主动扫描 Unity 项目结构,它只读取 .csproj 和 .sln 文件里的引用信息。如果你直接打开 Assets 文件夹,或只打开了脚本文件,提示必然为空。
常见错误现象:
- 新建 C# 脚本后,
using UnityEngine;报红,Start()方法无提示 - VSCode 提示
Project not loaded或No projects found - Unity 编辑器里修改脚本保存后,VSCode 不自动更新类型索引
实操建议:
- 在 Unity 编辑器中,确保已勾选
Edit → Preferences → External Tools → Generate .csproj files for Unity projects - 点击
Assets → Open C# Project—— 这是唯一可靠触发项目文件生成的操作,不要依赖自动保存或后台编译 - 生成完成后,VSCode 应自动加载解决方案;若没反应,按
Ctrl+Shift+P输入Developer: Reload Window强制重载 - 检查项目根目录是否出现
Assembly-CSharp.csproj和YourProjectName.sln;没有则说明 Unity 未成功导出
Unity Tools 扩展要开启日志集成与类型识别
Unity Tools 不只是“锦上添花”,它提供了 Unity 特有类型(SerializedProperty、EditorWindow)、ShaderLab 语法支持,以及关键的 Unity Console 日志实时转发功能。不启用它,你写 Debug.Log 就只能靠看 Unity 编辑器控制台。
配置要点:
- 安装后无需额外设置,但需确认 VSCode 已连接 Unity 编辑器:状态栏右下角应显示
Unity: Connected - 若显示
Unity: Disconnected,检查 Unity 中Edit → Preferences → External Tools → Editor Attaching是否勾选 - 在 VSCode 中打开命令面板(
Ctrl+Shift+P),运行Unity: Show Console,即可看到和 Unity 编辑器完全同步的日志流 - 该扩展还修复了部分
ScriptableObject和Custom Editor类型的提示缺失问题,尤其对编辑器扩展开发至关重要
遇到提示不全,先删 .vscode/ 和重新生成项目文件
VSCode 的 C# 类型缓存(.vscode/ 目录下的 ipch、cache)经常滞后于 Unity 的实际编译状态,尤其是你切换 Unity 版本、升级 Package Manager 包、或修改 Assembly Definition 后。
最有效的清缓存方式不是重启,而是彻底重建:
- 关闭 VSCode 和 Unity 编辑器
- 删除项目根目录下的整个
.vscode/文件夹 - 删除所有
.csproj、.sln、obj/、bin/目录(Unity 会重新生成) - 重新打开 Unity,等待编译完成,再执行
Assets → Open C# Project - 最后再打开 VSCode —— 此时 C# Dev Kit 会从头构建索引,提示恢复率最高
这个流程看起来麻烦,但比花两小时调各种 launch.json 或 settings.json 更快。Unity 的项目模型和 VSCode 的语言服务器之间没有实时双向同步机制,缓存过期是常态,不是异常。



















