当我想编辑c# Unity脚本时,它们会在Visual Studio中打开。它应该为所有与Unity相关的代码提供自动补全,但它不起作用。

在这里你可以看到缺失的功能:

可以看到,转换对象没有打开自动完成菜单。

Unity版本:5.5.2f1 Visual studio 2015 安装Visual Studio Tools for Unity


当前回答

2020年更新Visual Studio Community 2019和Unity 2019.3:

以管理员身份打开Visual Studio安装程序,选择修改当前安装并添加“Game development for Unity” 如果你现在在Unity中添加一个新的c#脚本,然后用Visual Studio(自动)打开它,它在窗口顶部的描述不是“Miscellaneous”,而是“Assembly-CSharp”,并且自动完成工作。

其他回答

对于Windows或macOS:

下载/安装Visual Studio IDE(带有Unity工具)

安装时,确保包含安装

使用Unity开发游戏

然后使用Unity(你可以双击一个c#文件),打开一个新的c#项目,Visual Studio IDE应该会打开你的新项目结构。

从那里,你应该能够看到你在寻找什么。

例如:

Linux(建议):

尝试Monodevelop -附加信息,它提供代码完成/提示。

我面临的问题是c#项目的目标是不同的。net框架(4.7.2),而Unity项目的目标是不同的(4.7.2)。NET 3.5)。

我通过将Unity中的目标更改为-来解决这个问题

文件->构建设置->播放器设置->其他设置-> API 兼容性级别:将其设置为您已有的.NET版本 安装(检查你的。net版本在这里)。在我的例子中,它是4.x

在此之后,Visual Studio工作得很好,自动更正也被修复了。

另一个可能的解决方案:

在项目窗口中,单击Assets文件夹 右击,并创建-> c#脚本 双击它,然后等待。

出于某种原因,这行得通。

我找到了另一种更方便的方法来解决这个问题:

在“解决方案资源管理器”中选择损坏的文件。 打开它的属性。 将“Build Action”字段从“Compile”切换为“None”。 然后切换回“Compile”。

这将以某种方式杀死Unity和Visual Studio之间的同步。

下一次Visual Studio重新加载项目时,将提示一个警告。 只需点击“丢弃”。

两个备选方案:

解决1

@singleton为我指明了这个方向。而不是在Visual Studio中更改目标,你应该在Unity中更改它,因为项目是自动生成的。

首先删除自动生成的Visual Studio文件: .csproj .user . sln

然后从Unity进入PlayerSettings,在“其他设置”下将“脚本运行时版本”从稳定3.5更改为实验性4.6。

然而,这并没有解决我的问题。

修复2

我注意到所有与Unity相关的代码都带有黄色警告。检查您的错误日志,看看情况是否如此。特别是查看是否得到以下错误:getreferenceNearestTargetframeworkTask

如果是,试试: 再次启动Visual Studio安装程序。

在Build Tools 2017中,单击“修改”,

确保勾选“Nuget目标和构建任务”。如果你点击通用Windows平台开发,这应该会被勾选。