VS Code编写Unity C#脚本不显示报错 疑似Omnisharp异常
Unity 开发时 OmniSharp 不提示代码错误修复方案
测试代码
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Driver : MonoBehaviour { void Start() { } void Update() { // transform.Rotate(0,0,0.1f); transform.Translate(0,.01f,0); } }
问题现象
代码中输入错误内容时编辑器无任何错误提示,重装相关组件、调整编辑器配置、安装旧版本C#扩展后问题仍存在,判断为OmniSharp运行异常。
排查修复步骤
- 核对Unity侧外部工具配置
打开Unity菜单栏Edit > Preferences > External Tools,External Script Editor选择当前使用的VS Code,勾选下方所有和生成.csproj文件相关的选项,点击Regenerate project files重新生成项目配置文件。OmniSharp依赖这些文件识别Unity API引用,文件缺失或配置错误时不会触发代码校验。 - 回退C#扩展至兼容版本
卸载当前安装的2.x及以上版本C#扩展、C# Dev Kit扩展,安装1.25.0版本的官方C#扩展,安装完成后关闭该扩展的自动更新。新版C#扩展默认搭载的OmniSharp版本和多数Unity版本兼容性存在问题,C# Dev Kit会抢占OmniSharp的项目加载权限,直接导致校验功能失效。 - 清除本地损坏缓存
完全关闭VS Code和Unity,删除项目根目录下的.vscode文件夹、所有.csproj后缀文件、.sln后缀文件,再删除系统用户目录下的.omnisharp缓存文件夹,重新打开Unity生成项目文件后,再通过Unity的Assets菜单打开C#项目,不要直接单独打开VS Code拖入项目文件夹。 - 核对OmniSharp运行日志定位具体错误
VS Code中打开输出面板,输出源选择OmniSharp Log,根据日志报错排查对应问题:如果提示找不到.NET SDK,就在VS Code设置中搜索Omnisharp: Use Global Mono,将选项改为always,指定OmniSharp使用Unity自带的Mono运行,不要调用系统全局安装的.NET版本。 - 排查冲突扩展
禁用所有第三方C#语法提示、代码补全类扩展,仅保留官方基础C#扩展测试功能是否恢复,这类扩展经常和OmniSharp产生加载冲突。
内容的提问来源于stack exchange,提问作者C W
相关产品推荐
相关产品推荐

