我的脚本有点问题。当我用Visual Studio为Unity编写C#脚本时,似乎我在记事本中工作,没有自动完成(正确吗?)而且我必须写得非常慢。
请观看视频。在开始是正常情况(从教程),第二部分显示我的问题。
例如,transform
类不显示建议或自动填充。
有问题的图片:
Unity版本:5.5.2f1
Visual studio 2015
已安装Visual Studio Tools for Unity
答案 0 :(得分:161)
没有自动完成,因为脚本显示“杂项文件”而不是项目名称。请查看您问题视频中的下图:
“杂项文件”消息可能由于多种原因而发生:
1 。当您从另一个文件夹打开Unity C#文件而不是从Unity Editor打开它时,可能会发生这种情况。
2 。这也可能发生,因为Unity在Visual Studio仍处于打开状态时崩溃,因此破坏了一些文件。
3 。可能会发生因为Unity已关闭然后重新打开但不再连接到Visual Studio。打开Visual Studio时,您会收到“杂项文件”并且没有自动完成。
4 。如果未安装 Visual Studio Tools for unity ,就会发生这种情况。
5 。当您从Unity创建脚本时,请在Unity完成处理之前或圆形图标动画内容完成动画之前快速打开它。
大多数情况下,重启Unity和Visual Studio应该解决这个问题。
我无法分辨哪一个导致了这个问题,但我将介绍解决此问题的最可能解决方案。
修复第1部分:
1 。从this链接下载并安装 Visual Studio Tools for unity 。在Unity和Visual Studio都关闭的情况下执行此操作。
2 。从Unity编辑器转到编辑 - > 偏好设置 ... - > 外部工具。在外部脚本编辑器下拉菜单中,将其更改为 Visual Studio 2015 。
修复第2部分:
如果新创建的C#文件即将出现为其他,请按照以下说明操作:
1 。从Visual Studio转到工具 - > 选项... - > Unity工具 - > 其他。在显示连接图标下,将其设置为true
,然后重新启动Visual Studio。
2 。重新启动时,Visual Studio中现在应该可以使用连接图标。单击它,然后选择要连接的Unity实例。红色的'x'图标现在应该变成棕色的复选标记图标。现在,当您在Unity中创建一个新的C#文件时,它应该打开而不说 Miscellaneous 。
修复第3部分:
还没修好?
重新导入项目,然后打开C#Project。
1 。关闭Visual Studio。
2 。从Unity,重新导入项目,转到资产 - > 重新导入所有
3 。现在,通过转到资产 - > 打开C#项目,在Visual Studio中打开项目。这将重新加载项目并修复可能的解决方案文件问题。
修复第4部分:
还没修好?
单独修复每个C#文件。
1 。点击显示所有文件图标。
2 。选择不执行自动完成的脚本,然后右键单击并选择包含在项目中。
修复第5部分:
尚未确定?
此特定解决方案可归功于chrisvarnz,这似乎适用于多人。
1 。关闭Visual Studio
2 。转到项目目录并删除所有生成的Visual Studio文件。
这些是要删除的文件扩展名:
示例:
假设您的项目名称名为“Target Shoot”,这些是要删除的文件应如下所示:
不要删除任何其他内容。
3 。再次双击来自Unity 的脚本,它应生成新的Visual Studio文件,然后打开Visual Studio。这可以解决您的问题。
修复第6部分:
如果不起作用,请检查您是否遇到this错误:
找不到“GetReferenceNearestTargetFrameworkTask”任务
1 。从here安装 Nuget PackageManager 。
2 .Restart Visual Visual。
有关详细信息,请参阅this答案。
答案 1 :(得分:14)
我找到了另一种以更方便的方式解决此问题的方法:
这将以某种方式终止Unity和Visual Studio之间的同步。
Visual Studio下次重新加载项目时,会提示警告。 只需点击"弃牌"。
答案 2 :(得分:7)
在Visual Studio中卸载并重新加载项目:
固定!
我发现这个解决方案工作得最好(最简单),多次遇到问题。
答案 3 :(得分:5)
此页面帮助我解决了问题。
Fix for Unity disconnected from Visual Studio
在 Unity 编辑器中,选择“编辑”>“首选项”菜单..
选择左侧的“外部工具”选项卡。
从右侧的下拉列表中选择统一版本
点击重新生成文件
大功告成
答案 4 :(得分:4)
答案 5 :(得分:4)
如果您已完成上述所有操作但仍无法正常工作,请尝试以下操作: 注意:您应该已经更新了VS。
转到Unity>编辑>首选项>外部工具>外部脚本编辑器。 对于我来说,我没有为外部脚本编辑器选择“ Visual Studio”,它不起作用。一旦我选择了这个,并从整体上双击c#文件,它就开始工作。
我希望它也会对您有所帮助。
答案 6 :(得分:2)
我今天使用Visual Studio 2017 15.4.5与Unity 2017达成了同样的问题。
我能够通过右键单击Visual Studio中的项目并将目标框架从3.5更改为4.5来解决此问题。
希望这可以帮助处于类似情况的其他人。
答案 7 :(得分:2)
两种替代选择:
修复1
@singleton指出了我的方向。由于项目是自动生成的,因此您应该在Unity中更改目标,而不是在Visual Studio中更改目标。首先删除自动生成的Visual Studio文件: 的.csproj 。用户 的.sln
然后从Unity内部进入PlayerSettings并在“其他设置”下将“Scripting Runtime Version”从Stable 3.5更改为实验4.6。
然而,这并不适合我。
修复2
我注意到所有对Unity相关代码的引用都标有黄色警告。检查错误日志,看看是否是这种情况。特别是看看是否收到以下错误:getreferenceNearestTargetframeworkTask
若是,请尝试: 再次启动Visual Studio安装程序。
在Build Tools 2017上,单击Modify,
确保勾选“Nuget目标和构建任务”。如果您单击通用Windows平台开发,则应该勾选此选项。
答案 8 :(得分:2)
使用Visual Studio Community 2019和Unity 2019.3更新2020:
以管理员身份打开Visual Studio Installer,选择以修改当前安装并添加“ Unity游戏开发”
如果您现在在Unity中添加新的c#脚本,并使用Visual Studio(自动)将其打开,则在窗口顶部不是“杂类”,而是“ Assembly-CSharp”,并且自动完成功能有效。
答案 9 :(得分:1)
答案 10 :(得分:1)
由于某些奇怪的原因,“使用Unity开发游戏”工具可能会在Visual Studio中被禁用。
要解决此问题。.
答案 11 :(得分:1)
尝试按Ctrl + Alt + Space
(在建议和标准完成模式之间切换)
答案 12 :(得分:1)
我通过从visual studio本身而不是统一编辑器创建.cs文件找到了我的解决方案
答案 13 :(得分:0)
我面临的问题是C#项目针对的是另一个.NET Framework(4.7.2),而Unity项目的目标却是另一个(.NET 3.5)。
我通过将Unity中的目标更改为-
来解决此问题文件->构建设置->播放器设置->其他设置-> API 兼容性级别:将其设置为您已经拥有的.NET版本 已安装(检查您的.NET版本here)。就我而言,是4.x
此后,Visual Studio可以正常工作,并且自动更正也得到修复。
答案 14 :(得分:0)
积分:https://stackoverflow.com/a/47662523/10471480
如果“脚本”文件夹不可见:
答案 15 :(得分:0)
对我有用的是,我将所有代码复制到了损坏的类中,并删除了该文件。 然后,我打开一个空文件并粘贴。
结果:精美的语法亮点又回来了!
答案 16 :(得分:0)
尝试一下
在Unity编辑器中,转到菜单,单击编辑->首选项->外部工具->外部脚本编辑器。将其设置为Visual Studio(您已安装的VS版本)。
现在在菜单栏中,转到“编辑”->“项目设置”->“播放器设置”->“其他设置”->“配置”下->“检查API兼容级别”->将其更改为已安装的.Net版本。就我而言,我将其设置为.Net 4.x
现在,如果Visual Studio已在运行,请转到Visual Studio,它将要求重新加载项目。重新加载项目。如果无法关闭Visual Studio,请检查它是否有效。现在从Unity Editor中打开cs文件,现在它应该可以工作了。
答案 17 :(得分:0)
以上解决方案均不适用于我。但是,我打开了ProjectName.CSPROJ文件,并手动添加了新文件,它的工作原理类似于charm
答案 18 :(得分:0)
请记住,如果您正在使用ReSharper工具,它将覆盖IntelliSense并显示其自身的含义。要对此进行更改,请在VS上转到扩展-> ReSharper->选项-> IntelliSense->常规,然后选择Visual Studio而不是ReSharper。
答案 19 :(得分:0)
在重新启动和/或重新安装VS之前,首先尝试打开其他任何项目,以查看Intellisence是否有效,如果有效,则问题可能出在当前项目上。首先,最可能的受害者是带有待定更新的NUGET软件包。要解决此问题,
答案 20 :(得分:0)
我尝试了所有这些方法,但最终发现我需要在解决方案资源管理器中右键单击该解决方案,并添加现有项并在Window的资源管理器中找到C#程序集文件。似乎有成千上万的不同问题使您出现此错误,这可能是最简单的解决方案。如果双击统一脚本,似乎并不会拖拽程序集。
答案 21 :(得分:0)
以上方法之一对我有用,我刚刚找到了解决此问题的方法,
1.首先,转到项目目录并删除.sln
文件
2.其次,统一并双击脚本。然后,Visual Studio将打开并出现错误,
.csproj
文件。只需双击并在Visual Studio编辑器中将其打开,然后打开资产文件夹中的scripts文件夹并打开脚本,自动补全功能就可以正常工作了。答案 22 :(得分:0)
我的自动完成功能也无法正常运行,因为未安装 Visual Studio Unity工具。因此,在安装该文件后,请删除自动生成的Visual Studio文件。其他人则说您再次打开文件即可解决问题,但事实并非如此。
诀窍是:无需正常双击文件,而是需要通过右键单击“ Open C#Project”从Unity打开C#文件。
答案 23 :(得分:0)
我解决了在我的Unity项目中配置的WIN上安装相同版本的.NET。 (播放器设置)
答案 24 :(得分:0)
另一个可能的解决方法:
出于某种原因,这项工作。
答案 25 :(得分:0)
适用于Windows或macOS:
下载/安装Visual Studio IDE (with Unity Tools)
安装时,请确保包含
的安装使用Unity进行游戏开发
然后使用Unity(您可以双击其中一个C#文件),打开一个新的C#项目,Visual Studio IDE应该以您的新项目结构打开。
从那里,你应该能够看到你在寻找什么。
例如:
对于Linux(建议):
尝试Monodevelop - Additional Information,它会提供代码完成/提示。
答案 26 :(得分:0)
就我而言,我的电脑上没有安装正确的.net版本。我在我的电脑上安装.net 3.5,这对我有用。
答案 27 :(得分:-1)
尝试组合使用: Ctrl + Alt +空格