VSCode下提⽰UnityEngine.UI不到引⽤的⼀次原因
最近在 Unity 内新增 C# ⽂件时,发现 VSCode 会提⽰UnityEngine.UI 不到引⽤,但是如果 Unity 将编辑器从 VSCode 改回 VS
engine什么意思后,VSCode 内的引⽤就奇迹般的正常了
  因此使⽤ Nodejs 监听⽂件变化查原因,使⽤⾃⼰写的⼩⼯具对⽐⽂件差异:
  在相关 csproj ⽂件内搜索 Assembly>false 发现是 VS 打开⼯程后会很果断地删除下列⾏:
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
  反之,如果 Unity 新增⼀个 C# ⽂件,VSCode 就会⾃动在 csproj ⾥⾯加⼊这⾏,果然同门师兄弟,竞争很激烈。
回到 csproj ⾥⾯,是没有任何 UnityEngine.UI 模块引⽤的,毫⽆疑问,是放在 dll ⾥⾯了,⽽再结合上⾯这⾏的字⾯理解,应该就是不到dll ⾥⾯引⽤的意思,因此不到 UnityEngine.UI 也就是顺理成章的事了。
解决⽅式:
1:vscode 安装1.1.3版本
这个⽹上搜到很多解决⽅式是这个,没有具体尝试过,应该可⾏,⼤概率是 VSCode ⾃⼰修复了对相关 Unity 引⽤的正确处理
2:Preferences => externalTools => VS 然后点击任意脚本进⼊ VS
如果愿意⽤ VSCode 的话,这种就是让 VS 去改 cpsproj,就是时间太久,知道原因再这么去改就显得对⾃⼰的电脑性能很⾃信
3:⼿动添加下列引⽤到 csproj
<Reference Include="UnityEngine.UI">
<HintPath>Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>
不难得出这种解决⽅式,不知道有没有副作⽤
4:删除 csproj 中的 <ReferenceOutputAssembly>false</ReferenceOutputAssembly>