Unity搭配Visual Studio Community出现IDE1007错误:当前上下文中不存在‘...’名称
兄弟,这种突然炸锅的情况我太懂了!明明前一天还好好的,突然不管是新变量还是用了很久的旧变量,全都报“当前上下文中不存在”的错误,连VS Code和VS Community都一起抽风,简直让人头大。结合你的描述,我给你列几个大概率能解决的方案,你挨个试试:
先重置Unity和VS的关联文件
打开Unity编辑器,依次点Edit > Preferences > External Tools,确认你的External Script Editor选的是正在用的Visual Studio Community版本,然后点击下方的Regenerate project files按钮。这个操作会重新生成Unity和VS之间的核心关联文件,很多时候IDE突然识别不了变量,都是因为这个关联出了小问题。清理VS的缓存数据
先把所有VS窗口关掉,找到你的Unity项目文件夹里的.vs隐藏文件夹(需要先开启显示隐藏文件),直接删掉它,然后重新打开项目。另外也可以在VS里点击Edit > IntelliSense > Refresh Local Cache,强制刷新IntelliSense的缓存,说不定就能让它重新识别到变量了。检查脚本的基础配置
虽然你说之前都正常,但还是快速排查下:看看报错的脚本顶部有没有using UnityEngine;这类必要的命名空间引用,脚本是不是放在Assets文件夹或者它的子文件夹里(Unity只会识别Assets目录下的脚本),有没有不小心删掉了变量的声明代码?验证版本兼容性
有时候Unity更新后,VS的版本没跟上,或者装了不兼容的插件,也会出这种幺蛾子。你可以去Unity官网查下当前Unity版本对应的推荐VS版本,确保两者匹配。另外也可以试试禁用VS里一些第三方的代码补全插件,说不定和内置的IntelliSense冲突了。玄学重启大法
别笑,有时候就是这么管用!完全关闭Unity和所有VS窗口,甚至重启电脑,再重新打开项目试试。如果还是不行,建议先备份项目,然后新建一个空Unity项目,把原来的脚本和资源慢慢导进去,排查是不是项目本身的文件损坏了。
你提到例子里的float变量之前能用现在突然失效,这种情况大概率是缓存或者关联文件出了问题,优先试试前两个方案,应该能解决大部分这类问题。
备注:内容来源于stack exchange,提问作者Vald1z

