Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Visual Studio代码中为Unity函数名获取intellisense?_C#_Unity3d_Visual Studio Code_Intellisense - Fatal编程技术网

C# 如何在Visual Studio代码中为Unity函数名获取intellisense?

C# 如何在Visual Studio代码中为Unity函数名获取intellisense?,c#,unity3d,visual-studio-code,intellisense,C#,Unity3d,Visual Studio Code,Intellisense,我正在跟随一个关于Unity的教程,我看到讲师在编写方法名称时具有intellisense 然而,我只有类和变量的智能感知,我指的是像刚体和我自己的变量这样的统一类 我也读过: 查看指南以了解更多信息。他们建议进行一些扩展: 我相信Unity Snippets扩展就是您想要的。虽然Alex Myers的答案是有帮助的,但它不是100%正确的。Unity代码片段确实给了你一些代码片段,还有typeahead的幻觉,它实际上不是intellisense 要获得真正的intellisen

我正在跟随一个关于Unity的教程,我看到讲师在编写方法名称时具有intellisense

然而,我只有类和变量的智能感知,我指的是像刚体和我自己的变量这样的统一类

我也读过:

查看指南以了解更多信息。他们建议进行一些扩展:


我相信Unity Snippets扩展就是您想要的。

虽然Alex Myers的答案是有帮助的,但它不是100%正确的。Unity代码片段确实给了你一些代码片段,还有typeahead的幻觉,它实际上不是intellisense

要获得真正的intellisense,您需要:

  • 在系统上安装dotnet()并
  • 为VSCode()安装dotnet扩展
更多信息可在此处找到:

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

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


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

您的程序集CSharp.csproj项目名称.sln文件中一定有问题。最有可能是.csproj文件。如果您查看一下,您将看到对.dll文件的各种引用

通过启用“编辑>首选项>生成所有.csproj文件”,您可以告诉Unity(我的版本:v2019.2.20f1)为您创建这些文件

 1. Delete both files.
 2. Enable .csproj file generation.
 3. Double click on a script in Unity.

这解决了我的问题。

注意:我的解决方案并没有解决intellisense到函数名的问题,但这是在VSCode中更普遍地解决intellisense的第一个问题

我需要在unity中更新VSCode包

在Unity中,单击窗口,然后单击包管理器,然后查找VisualStudio代码编辑器。按triangle展开它,升级到最新版本(对我来说,它是
1.2.0
。我重新启动了VSCode,它工作了

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


虽然这个问题已经问了两年了,但这个问题偶尔会出现,就像发生在我身上一样

我自己也有这个问题,所以这可能是第一个应该检查的问题

  • “安装.NET Framework 4.6目标包”
为什么?

首先,我使用的是dotnet core,而不是标准版,所以我的计算机上没有安装标准库。当我开始尝试Unity和VS代码时,这是我不知道的缺失部分

当我提到这个问题时,我在网上搜索了一会儿,看到了这个问题。我又花了一段时间才注意到页面“启用代码完成”部分的这个框架句子。所以我尝试了,现在我很高兴我尝试了

只是别忘了至少需要重新启动VS代码才能让intellisense正常工作

PS:框架版本可能会改变,也很可能会改变,这取决于我们所处的年份,以及我们使用的版本。因此,如果“4.6”不起作用,那么您可能需要另一个版本


PS2:如果您正在寻找的是Mac,请按照上面的相同链接,找到上面提到的相同部分,以获得.NET SDK的链接。

Intellisense是.NET环境的纯工作流。因此,您需要在系统上安装.NET“开发者包”(而不是运行时),因为它安装了以下三个必要组件:

  • .Net框架
  • .Net目标包
  • .NETSDK
  • 参考链接:

    它直接安装到系统管理员可访问的路径,因此无需设置它。现在,您必须告诉VS代码要使用哪个.Net版本(无论您安装了哪个版本)。 Unity项目的根目录中将包含以下两个文件:

  • Assembly-CSharp.cs
  • Assembly-CSharp-Editor.cs
  • 在这两个文件中搜索第行(可能是16行):

    v4.8
    

    编辑您刚刚安装的版本(我有4.8版)。然后重新打开VS代码。现在一切都正常了。

    我真的想为所有试图让intellisense使用Visual Studio代码的人澄清一下

    首先,我为Unity 2019.4.14写这篇文章,因为它是最新版本

    以下是您必须做的事情,以使其正常工作:

  • 您需要Visual Studio代码(duh)
  • .NET Framework Dev Pac(不仅是.NET core,甚至不是.NET core SDK,而是Framework Dev Pack,否则VSCode将抛出以下错误:
  • 找不到.NETFramework,Version=v4.7.1的引用程序集。若要解决此问题,请安装此框架版本的开发人员包(SDK/目标包),或重新确定应用程序的目标

  • 在VSCode终端中键入
    dotnet
    ,检查是否安装了.NET
  • 在VSCode中搜索“C#for Visual Studio代码”扩展并安装它
  • 在Unity中,转到PackageManager并安装Visual Studio代码编辑器。这将使Unity能够为VSCode生成正确的项目文件
  • 在Unity中,转到Edit->Preferences->External Tools并从下拉列表中选择VSCode(可以列为code.cmd),选择后,勾选Generate.csproj files for部分中需要的所有复选框。我选中了嵌入式包、本地包和来自未知源的包。单击“重新生成项目文件”
  • 打开Unity的任何C#文件,您都可以开始了
  • 现在,关于Unity扩展的Unity代码片段和调试器呢?这些都是有用的助手扩展,但它们与Intellisense无关
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    
    <TargetFrameworkVersion> v4.5 </TargetFrameworkVersion>
    
    <TargetFrameworkVersion> v4.5.1 </TargetFrameworkVersion>