📜  unity vscode intellisense 语义突出显示不起作用 (1)

📅  最后修改于: 2023-12-03 14:48:12.307000             🧑  作者: Mango

Unity VSCode IntelliSense 语义突出显示不起作用


在使用 Unity 编辑器时,我们很可能会选择使用 Visual Studio Code 作为代码编辑器,并使用插件来实现与 Unity 的集成。其中一个常用的插件是 Unity Code Snippets,它提供了一系列代码模板和代码片段,方便开发者快速编写常用的代码块。

同时,我们也会使用 IntelliSense 插件来提高代码的智能提示和补全功能。但是,有时候我们会发现编辑器的语义突出显示功能不起作用,导致函数名、变量名等等无法正确高亮显示。这会影响我们对代码的阅读和理解,让代码变得更加难以维护。

本文将介绍 Unity VSCode IntelliSense 语义突出显示不起作用的原因和解决方法。

问题原因

在 Unity 编辑器中,我们常常会使用 MonoBehaviour、ScriptableObject 等 C# 脚本类来实现游戏逻辑的编写。这些脚本类都继承自 UnityEngine.Object,而这个类不在 Unity 引擎附带的 .NET Framework 中。因此,VSCode 的 IntelliSense 插件无法准确地识别到这些类的定义和成员。

解决方案

为了解决这个问题,我们需要配置 Unity VSCode IntelliSense 的设置。在 VSCode 中,按下 Ctrl + Shift + P,打开 Command Palette,输入“Preferences: Open User Settings”,打开用户设置面板。

找到“CSharp › Autocomplete: Use Enhanced Provider”这个设置,将它的值改为 true。这个设置将启用 OmniSharp Enhanced Autocompletion Provider,可以帮助 IntelliSense 插件更准确地解析 Unity 引擎的 API。

同时,我们还需要在项目中添加一个名为 .omnisharp.json 的文件。在这个文件中,我们需要将 Unity 引擎的 DLL 文件路径添加到“Path”数组中。比如,我们使用的是 Unity 2018.4.26f1 版本,我们可以找到它的安装路径,然后将下面这句话添加到 .omnisharp.json 中:

"Path": [
  "C:/Program Files/Unity/Editor/Data/Managed"
]

这样,我们就解决了 Unity VSCode IntelliSense 语义突出显示不起作用的问题。在 VSCode 中重新打开项目,或者重启一下 VSCode,就可以看到高亮显示再次生效了。

总结

Unity VSCode IntelliSense 的语义突出显示功能在使用中可能会出现问题,因为 Unity 引擎的 API 不在 .NET Framework 中。为了解决这个问题,我们需要使用 OmniSharp Enhanced Autocompletion Provider,并在项目中添加 .omnisharp.json 文件。这样,我们就可以更加轻松地阅读和理解 Unity C# 代码。