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