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

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

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

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


当前回答

从Unity选择编辑选项,然后~>首选项…~>外部工具,然后打开内置包。我尝试了所有的解决方案,只有这一个帮助我,我打开它的机会!

其他回答

两个备选方案:

解决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平台开发,这应该会被勾选。

以上的方法对我来说都没用。然而,我打开ProjectName。CSPROJ文件,并手动添加新文件,它工作得很好

没有自动完成功能,因为脚本显示的是“Miscellaneous Files”而不是项目的名称。看看下面这张图片,它来自你的问题中的视频:

出现“Miscellaneous Files”消息的原因有很多:

It can happen when you open your Unity C# file from another folder instead of opening it from Unity Editor. This can also happen because Unity crashed while Visual Studio is still open therefore corrupting some files. It can happen because Unity was closed then re-opened but is no longer connected to Visual Studio. When Visual Studio is opened you get "Miscellaneous Files" and no auto-completion. This can happen when Visual Studio Tools for unity is not installed. When you create a script from Unity then quickly open it before Unity finish processing it or before the round icon animation stuff finish animating.


大多数情况下,重启Unity和Visual Studio可以解决这个问题。

我不知道是哪一个导致了这个问题,但我将介绍最有可能解决这个问题的解决方案。

修复第一部分:

从此链接下载并安装Visual Studio工具。在Unity和Visual Studio都关闭时这样做。 在Unity编辑器中,点击编辑→首选项…→外部工具。在“外部脚本编辑器”下拉菜单上,将其更改为Visual Studio 2015。


修复第2部分:

如果新创建的c#文件显示为Miscellaneous,那么请遵循以下说明:

在Visual Studio中,选择工具→选项…→统一工具→杂项。在显示连接图标下,将其设置为true,然后重新启动Visual Studio。 当您重新启动时,连接图标现在应该在Visual Studio中可用。点击它,然后选择要连接的Unity实例。红色的“x”图标现在应该变成棕色的复选符号图标。现在,当你在Unity中创建一个新的c#文件时,它应该不会显示Miscellaneous。


修复第3部分:

还没修好?

重新导入项目,然后打开c#项目。

关闭Visual Studio。 从Unity重新导入项目,点击Assets→重新导入全部。 现在,在Visual Studio中打开项目,点击资产→打开c#项目。这将重新加载项目并修复可能的解决方案文件问题。


修复第4部分:

还没修好?

单独修复每个c#文件。

点击显示所有文件图标。 选择不执行自动完成的脚本,然后右键单击并选择Include In Project。


修正第5部分:

还没有解决?

chrisvarnz提出了这个特别的解决方案,似乎对很多人都有效。

Close Visual Studio Go your project directory and delete all the generated Visual Studio files. These are the files extensions to delete: .csproj .user .sln Example: Let's say that the name of your Project is called Target_Shoot, these are what the files to delete should look like: Target_Shoot.csproj Target_Shoot.Editor.csproj Target_Shoot.Editor.csproj.user Target_Shoot.Player.csproj Target_Shoot.Player.csproj.user Target_Shoot.sln Do not delete anything else. Double click on the script again from Unity which should generate new Visual Studio file then open Visual Studio. This may solve your problem.


修复第6部分:

如果没有工作,检查是否有以下错误:

未找到“GetReferenceNearestTargetFrameworkTask”任务

从这里安装Nuget PackageManager。 重新启动Visual Studio。

更多信息请看这个答案。


修复第7部分

确保所有项目都已加载。 在解决方案资源管理器中,它会告诉你# of #项目。 如果没有显示所有的项目,右键单击“解决方案(# of # projects)”,然后单击“加载项目”。

Go to Options on the Tools menu and then select Documents in the Environment node. (If Documents does not appear in the list, select Show all settings in the Options dialog box.) Put a tick on "Miscellaneous files in Solution Explorer" and Click OK. (This option displays the "Miscellaneous Files" node in Solution Explorer. Miscellaneous files are files that are not associated with a project or solution but can appear in Solution Explorer for your convenience if you tick this option.) Locate your file in the Solution Explorer under "Miscellaneous Files". Then drag and drop your file to where it should belong and voila! This will copy the file to where you drop it. You may now safely delete the older file under Miscellaneous Files folder if you wish to do so

学分:https://stackoverflow.com/a/47662523/10471480

如果脚本文件夹不可见:

在解决方案资源管理器中单击“显示所有文件” 找到Scripts文件夹。 右键单击脚本,选择“包含在项目中”

上面的一种方法对我有用,我刚刚找到了这个问题的解决方案, 1. 首先,转到项目目录并删除.sln文件 2. 第二,进入unity,双击你的脚本。那么Visual Studio将会打开一个错误,

然后单击确定并关闭Visual Studio编辑器。 最后,关闭你的Windows防御器,然后转到你的项目目录,会有一个。csproj文件。只需双击并从Visual Studio编辑器中打开它,打开assets文件夹中的scripts文件夹,然后打开脚本,自动完成将会非常好地工作。