unity 打开vs没有解决方案_Unity使用VS Code编写C#代码没有代码补全怎么解决?

本文探讨了在Unity中使用VS Code编写C#代码时遇到的代码补全问题。主要原因是Unity未能正确生成或维护csproj文件,导致VS Code无法提供完整的静态分析和智能补全功能。解决方案包括确保Unity的外部代码编辑器设置为VS Code,且VS Code的可执行文件名为code.exe。此外,还提到了可能需要调整Unity插件Visual Studio Code Editor的版本以修复dll引用错误。
摘要由CSDN通过智能技术生成

题目说的不是很清楚,感觉起来是没有添加 unity 的 dll 引用,或者引用不完整,或者当时插件对外部引用的支持有点点问题?

此处删除部分无影响的原答,更多内容参见下面的更新。

2020-3-5 update

我依旧不清楚应该怎么解决这个问题,不过用的久了稍微有了点发现,这或许能够提供一点帮助

在 vscode 里面我装了插件 C# 和 Unity Tools,前者用于支持 C#,后者用于支持 Unity

要建立起完善的静态分析、智能补全等功能就必须保证 csproj 工程文件没有问题,而 csproj 的维护需要依靠 unity(因为 vscode 不干这活,如果你用的 visual studio,那么 csproj 的维护应该是 vs 来完成(不确定))

曾有一段时间,我的 unity 一直不能正确生成 csproj,国内始终查不到资料,最后在国外查到了。

PS:我曾经找了那么久,这会居然一下子就找到了,难过https://forum.unity.com/threads/generate-sln-csproj-without-visual-studio.531063/​forum.unity.com

看他提问的说法,vs 是可以完成 sln/csproj 的维护工作的。

在他们讨论了几楼之后,出现了这样一段:

意思是说:出于某些(非常糟糕)的原因 Unity 决定根据偏好中设置的代码编辑器的名称来生成 sln 和项目文件。并且它(错误地)假定你不会想要 sln 文件如果你没有使用在他们列表里的某些东西。问题在于,我在使用 vscode insiders 版本并且其可执行程序的名称并不是 Unity 所期望的。将那个 exe 重命名为 code.exe 解决了这个问题。

虽然是 18 年的贴,不过就我在19年下半年碰到的情况,Unity 现在估计还是这么处理的。那么我们可以得到结论,如果你使用的是 vscode,就必须要保证两点:Unity 里面的外部代码编辑器(External Script Editor)要设置成 vscode

你的 vscode 的可执行程序的名称得是 code.exe这点我其实并不确定 Unity 有没有改善,我没用 insiders 版本所以没法去进行确认(毕竟他们给 Unity 提了反馈)

2020-3-31更新:有评论指出,即使是 2019.3.4f1,仍然需要把 insiders 版本的改名成 code.exe

一般情况下,到这里就没问题了。但是我后来碰到了新的问题,csproj 坏掉了,Unity 的确维护了这些文件,但是里面的内容是错的。

负责维护 sln/csproj 的这一任务有可能是一个插件来完成的:Visual Studio Code Editor

我目前用的 1.1.3 版本,1.1.4 版本在我这里会出问题(具体表现为那些 dll 的外部引用全部出错)

所以如果还存在问题,可以尝试切换这个插件的版本。

2020-5-15 update

1.20版本在我这里是没有问题了

如果以上操作依旧不能解决问题,那我也没有办法了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值