如何修复Unity中可见的脚本在Visual Studio中缺失不显示的问题
Unity新建C#脚本在Visual Studio不显示、跨脚本无法访问的修复方案
按操作成本从低到高依次尝试,每步做完验证问题是否解决:
- 第一步做基础同步:关闭所有已打开的Visual Studio窗口,回到Unity编辑器顶部菜单选择
Assets > Reimport All,等待资源导入进度条完全走完后,通过Assets > Open C# Project重新唤起Visual Studio,等待VS完成项目索引加载后检查脚本是否出现在解决方案列表中。 - 第二步检查程序集配置:在Unity项目Project面板选中Timer脚本,查看Inspector面板,如果脚本所在文件夹挂载了独立的Assembly Definition(asmdef)文件:要么把Timer脚本移到和其他业务脚本同个无独立asmdef的常规目录下,要么在其他脚本所属的asmdef配置里添加对Timer所在asmdef的引用,否则跨程序集的脚本默认无法互相访问,配置不同步时也会出现VS不显示脚本的问题。
- 第三步强制重建VS工程文件:关闭Visual Studio,打开Unity项目的本地根目录,删除所有后缀为
.csproj、.sln的文件,以及名为.vs的隐藏缓存文件夹;回到Unity编辑器打开Edit > Preferences > External Tools,确认External Script Editor选中的是你本地安装的对应版本Visual Studio,不要选“Open by file extension”选项,点击面板中的Regenerate project files按钮,等待工程文件生成完成后再重新打开C#项目。 - 第四步排查脚本本身关联问题:检查Timer脚本的命名空间,如果脚本头部声明了自定义命名空间,需要在调用它的其他脚本顶部加对应的
using 命名空间名;声明才能访问;如果是meta文件关联错乱,先复制好Timer脚本的全部代码内容,在Unity里删除原Timer脚本(会同步删除对应的.meta文件),重新右键新建C#脚本命名为Timer,把复制的代码粘贴回去,等待Unity编译完成后重启VS。 - 第五步排查工具插件适配问题:打开Visual Studio,进入
Extensions > Manage Extensions,确认Microsoft Visual Studio Tools for Unity插件处于已启用状态,且版本和你当前使用的Unity大版本匹配,版本不兼容时更新插件后重启Unity和VS即可。
验证标准:修复完成后,Timer脚本会正常出现在VS的解决方案资源管理器列表中,其他脚本内可直接声明Timer类型的变量,无“找不到类型”的编译报错。
内容的提问来源于stack exchange,提问作者TimBrem
相关产品推荐
相关产品推荐

