VS Code智能提示无法识别UnityEngine.UIElements命名空间下类型问题
Unity 2020.x 下Omnisharp无法识别UIElements类型解决方案
适配环境:Unity 2020.3.20f1、Visual Studio Code Editor包1.2.4、UI Toolkit 1.0.0-preview.18
步骤1:重新生成Unity项目文件
- 打开Unity编辑器,进入
编辑 > 首选项 > 外部工具(Windows)/Unity > 设置 > 外部工具(Mac) - 确认外部脚本编辑器已选中你使用的VS Code/Vim对应程序
- 勾选
生成所有.csproj文件分类下的 本地包、内置包、注册表包 三个选项 - 点击
重新生成项目文件按钮,等待生成完成后完全关闭代码编辑器再重新打开
步骤2:调整Omnisharp运行配置
- 若使用VS Code,打开设置页搜索
Omnisharp: Use Modern Net,取消该选项的勾选(Unity 2020基于.NET Framework 4.x运行,与现代.NET运行时存在兼容问题) - 按
Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac)唤起命令面板,执行OmniSharp: Restart OmniSharp重启语言服务
步骤3:自定义程序集适配(仅适用于使用了.asmdef文件的项目)
- 打开你自定义的
.asmdef文件,在Assembly References列表中手动添加UnityEngine.UIElementsModule、Unity.UIElements两个引用 - 回到Unity编辑器等待程序集重新编译完成,再刷新代码编辑器的项目索引
步骤4:手动补充csproj引用(兜底方案)
- 若以上操作均无效,打开项目根目录下的
Assembly-CSharp.csproj文件,在<ItemGroup>下的<Reference>列表中补充以下节点后保存:
<Reference Include="UnityEngine.UIElementsModule" /> <Reference Include="UnityEditor.UIElementsModule" /> <Reference Include="Unity.UIElements" />
- 重启Omnisharp服务即可生效
内容的提问来源于stack exchange,提问作者gsuuon
相关产品推荐
相关产品推荐

