当我想编辑C#Unity脚本时,它们会在Visual Studio中打开。它应该为所有与Unity相关的代码提供自动完成,但它不起作用。
在这里您可以看到缺少的功能:
如图所示,转换
对象不会打开自动完成菜单。
Unity版本:5.5.2f1
Visual Studio 2015
安装了Visual Studio Tools for Unity
没有自动完成,因为脚本显示的是“杂项文件”而不是项目名称。看看下面来自您问题中视频的图片:
发生“杂项文件”消息的原因有很多:
>
当您从另一个文件夹打开Unity C#文件而不是从Unity Editor打开它时,可能会发生这种情况。
这也可能发生,因为Unity在Visual Studio仍打开时崩溃,从而损坏了某些文件。
这可能是因为Unity已关闭然后重新打开,但不再连接到Visual Studio。打开Visual Studio时,您会获得“杂项文件”并且没有自动完成。
当未安装Visual Studio Tools for Unity时,可能会发生这种情况。
当您从Unity创建脚本时,请在Unity完成处理之前或圆形图标动画内容完成动画之前快速打开它。
大多数情况下,重新启动Unity和Visual Studio应该可以解决这个问题。
我不知道是哪一个导致了这个问题,但我会介绍最有可能的解决方案来解决这个问题。
修复第1部分:
>
从此链接下载并安装Visual Studio Tools for Unity。在Unity和Visual Studio都关闭时执行此操作。
从Unity编辑器中,转到编辑→首选项…→外部工具。在外部脚本编辑器下拉菜单上,将其更改为Visual Studio 2015。
修复第2部分:
如果新创建的C#文件以杂项形式出现,请按照以下说明操作:
>
从Visual Studio,转到工具→选项…→统一工具→杂项。在显示连接图标下,将其设置为true
然后重新启动Visual Studio。
当您重新启动时,连接图标现在应该在Visual Studio中可用。单击它,然后选择要连接的Unity实例。红色的“x”图标现在应该变成棕色的复选标记图标。现在,当您在Unity中创建一个新的C#文件时,它应该会打开而不会说“杂项”。
修复第3部分:
还是没修好?
重新导入项目,然后打开C#项目。
>
关闭Visual Studio。
从Unity,通过转到资产→全部重新导入项目。
现在,通过转到资产→打开C#项目在Visual Studio中打开项目。这将重新加载项目并修复可能的解决方案文件问题。
修复第4部分:
还是没修好?
单独修复每个C#文件。
>
单击显示所有文件图标。
选择不执行自动完成的脚本,然后右键单击并选择包含在项目中。
修复第5部分:
还没修好?
功劳归于chrisvarnz,因为这个特殊的解决方案似乎对许多人都有效。
>
关闭Visual Studio
转到您的项目目录并删除所有生成的Visual Studio文件。
这些是要删除的文件扩展名:
。cs pro j
。用户
。s在
示例:
假设您的项目的名称称为Target_Shoot
,这些是要删除的文件的样子:
Target_Shoot. cs pro j
Target_Shoot. Editor.cs pro j
Target_Shoot. Editor.cs pro j.user
Target_Shoot. Player.cs pro j
Target_Shoot. Player.cs pro j.user
Target_Shoot. s ln
不要删除任何其他内容。
再次从Unity双击脚本,该脚本应该生成新的Visual Studio文件,然后打开Visual Studio。这可能会解决您的问题。
修复第6部分:
如果不起作用,请检查您是否有此错误:
未找到“GetRecentceNearestTargetFrameworkTask”任务
>
从这里安装Nuget PackageManager。
重新启动Visual Studio。
有关更多信息,请参阅此答案。
修复第7部分
确保加载了所有项目。在解决方案资源管理器中,它应该告诉您#of#项目。如果没有显示所有项目,请右键单击“解决方案(#of#项目)”并单击加载项目。
试试这个,
>
在Unity编辑器中转到菜单,单击编辑-
现在在菜单栏中转到编辑-
现在,如果Visual Studio已经运行,请转到Visual Studio,它将要求重新加载项目。重新加载项目。检查它是否有效,如果不关闭Visual Studio。现在从Unity Editor打开cs文件,现在它应该可以工作了。
我找到了另一种更方便地解决此问题的方法:
这将以某种方式终止Unity和Visual Studio之间的同步。
下次Visual Studio重新加载项目时,它将提示警告。只需单击“丢弃”。