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

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

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

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


当前回答

下面的方法对我有用。

进入编辑->首选项->外部工具->外部脚本编辑器选择脚本编辑器

其他回答

请记住,如果你正在使用ReSharper工具,它将覆盖智能感知并显示它自己的。要改变这一点,在VS上,点击扩展-> ReSharper -> Options -> IntelliSense -> General,然后选择Visual Studio而不是ReSharper。

我尝试了所有这些方法,但最终发现我需要在解决方案资源管理器中右键单击解决方案,并添加现有项目,并在windows的资源管理器中找到c#程序集文件。似乎有无数不同的问题会给你这个错误,这可能是最简单的解决方案。如果你在unity中双击脚本,它似乎不会拖动程序集。

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

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

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

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

在Visual Studio中卸载和重新加载项目:

在解决方案资源管理器中右键单击项目 选择卸载项目 选择重新加载项目

固定!

我发现这个解决方案是最好的(最简单的),我遇到过很多次这个问题。

来源:https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/

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

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