题目说的不是很清楚,感觉起来是没有添加 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版本在我这里是没有问题了
如果以上操作依旧不能解决问题,那我也没有办法了。