如何在Visual Studio Code for Unity函数名称中获取智能感知?

Eno*_*noy 10 c# intellisense unity-game-engine visual-studio-code

我正在关注有关Unity的教程,并且看到讲师在编写方法名称时具有智识。

但是我对类和变量只有智能感知,我的意思是像Rigidbody这样的Unity类和我自己的变量。

在此处输入图片说明

我也读过: 自动补全在Visual Studio中不起作用

如何在Visual Studio 2017中为Unity启用智能感知

小智 31

老问题,但我最近遇到了同样的问题。

您的Assembly-CSharp.csprojproject-name.sln文件中一定存在问题。最有可能是.csproj文件。如果你看一看,你会看到对 .dll 文件的各种引用。

您可以通过启用 Edit > Preferences > Generate all .csproj files告诉 Unity(我的版本:v2019.2.20f1)为您创建这些文件。

 1. Delete both files.
 2. Enable .csproj file generation.
 3. Double click on a script in Unity.
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。

  • 这为我解决了这个问题。谢谢。从版本 2019.4 开始,重新生成的路径为“编辑>首选项>外部工具>重新生成项目文件” (7认同)
  • 在较新的 Unity 编辑器(至少 2020 版)中,我必须将“编辑->首选项->外部工具->外部脚本编辑器”从“通过脚本扩展打开”更改为“Visual Studio Code”。这更新了首选项窗口并添加了更多复选框。我没有选中它们(默认)。然后我单击“重新生成项目文件”按钮, (4认同)

Chr*_*ris 10

尽管 Alex Myers 的回答有帮助,但并非 100% 正确。Unity Snippets 确实为您提供了一些片段,以及预先输入的错觉,它实际上并不是智能感知。

对于真正的智能感知,您需要:

更多信息可以在这里找到:https : //code.visualstudio.com/docs/languages/dotnet

您可以通过dotnet在 VSCode 中输入终端来测试您是否安装了 dotnet 。

注意在下图中,我如何获得完整的方法签名、引用计数和黄色提示球。这些仅在使用 dotnet + 扩展时可用(在使用代码段时不可用)

在此处输入图片说明

  • 简单地安装 C# 扩展对我有帮助,+1 (2认同)

小智 9

我真的很想为每个尝试使用 Visual Studio Code 进行智能感知的人澄清一下。

首先,我是为 Unity 2019.4.14 编写的,因为它是最新版本。

这些是你必须做的事情:

  1. 你需要 Visual Studio Code(废话)
  2. .NET Framework Dev Pac(不仅仅是 .NET 核心,甚至不是 .NET 核心 SDK,而是框架开发包,否则 VSCode 将抛出此错误:

未找到 .NETFramework,Version=v4.7.1 的参考程序集。要解决此问题,请为此框架版本安装开发人员包(SDK/目标包)或重新定位您的应用程序。

  1. 通过dotnet在 VSCode 终端中键入来检查您是否安装了 .NET 。
  2. 在 VSCode 中搜索“C# for Visual Studio Code”扩展并安装它
  3. 在 Unity 中,转到包管理器并安装 Visual Studio 代码编辑器。这将使 Unity 能够为 VSCode 生成正确的项目文件。
  4. 在 Unity 中,转到 Edit -> Preferences -> External Tools 并从下拉列表中选择 VSCode(可以列为 code.cmd),然后在选择它后勾选 Generate .csproj files for 部分中的所有复选框。我检查了嵌入式包、本地包和来自未知来源的包。单击“重新生成项目文件”
  5. 从 Unity 打开任何 C# 文件,您应该一切顺利。

现在,用于 Unity 扩展的 Unity 代码片段和调试器怎么样?好吧,这些是有用的辅助扩展,但它们与 Intellisense 无关。第一个用于快速键入常见的 Unity 模式,第二个用于在您键入时显示 Unity Debug 警告和错误,而不是保存并返回 Unity 并阅读控制台。

希望这有帮助。


Ale*_*ers 6

查看使用 VS Code进行Unity 开发的指南。他们推荐了一些扩展:

我相信Unity Snippets扩展是您正在寻找的。


Ben*_*rth 5

注意:我的解决方案没有解决函数名称的智能感知,但这是在 VSCode 中更普遍地修复智能感知的第一个问题。

我需要统一更新 VSCode 包。

在 Unity 中,单击 Window,然后单击 Package Manager,然后查找 Visual Studio Code Editor。按三角形展开它,并升级到最新版本(对我来说,它是1.2.0。我重新启动了 VSCode 并且它工作了。

v1.1.4有一个bug导致这个问题,大约3个月没有修复。它仍然是与新默认项目一起安装的默认包,因此您必须在每个新项目中将此包版本更改为 1.2.0,直到他们更新它。

V1.2.0 包管理器截图

  • +1 这对我来说是个问题;我从 1.2.0 更新到 1.2.1,这解决了我的 Intellisense 问题。 (2认同)

Khe*_*der 5

对于在Mac上遇到相同问题的任何人,请尝试在.vscode/settings.json中设置此值(或在用户设置而不是工作区设置中设置)

"omnisharp.useGlobalMono": "always"