当我想编辑c# Unity脚本时,它们会在Visual Studio中打开。它应该为所有与Unity相关的代码提供自动补全,但它不起作用。
在这里你可以看到缺失的功能:
可以看到,转换对象没有打开自动完成菜单。
Unity版本:5.5.2f1 Visual studio 2015 安装Visual Studio Tools for Unity
当我想编辑c# Unity脚本时,它们会在Visual Studio中打开。它应该为所有与Unity相关的代码提供自动补全,但它不起作用。
在这里你可以看到缺失的功能:
可以看到,转换对象没有打开自动完成菜单。
Unity版本:5.5.2f1 Visual studio 2015 安装Visual Studio Tools for Unity
当前回答
在重新启动和/或重新安装VS之前,首先尝试打开任何其他项目,看看智能是否工作,如果是这样,那么问题可能在于您当前的项目。首先,最有可能的受害者是带有挂起更新的NUGET包。为了解决这个问题,
右键单击引用 继续管理NUGET包下的NUGET包 继续更新安装更新和重新检查智能
其他回答
两个备选方案:
解决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平台开发,这应该会被勾选。
2020年更新Visual Studio Community 2019和Unity 2019.3:
以管理员身份打开Visual Studio安装程序,选择修改当前安装并添加“Game development for Unity” 如果你现在在Unity中添加一个新的c#脚本,然后用Visual Studio(自动)打开它,它在窗口顶部的描述不是“Miscellaneous”,而是“Assembly-CSharp”,并且自动完成工作。
以上的方法对我来说都没用。然而,我打开ProjectName。CSPROJ文件,并手动添加新文件,它工作得很好
使我成功的是,我复制了坏类中的所有代码并删除了该文件。 然后,我打开一个具有相同名称的空文件并粘贴回来。
结果:漂亮的语法亮点回来了!
在重新启动和/或重新安装VS之前,首先尝试打开任何其他项目,看看智能是否工作,如果是这样,那么问题可能在于您当前的项目。首先,最有可能的受害者是带有挂起更新的NUGET包。为了解决这个问题,
右键单击引用 继续管理NUGET包下的NUGET包 继续更新安装更新和重新检查智能