Unity中新建C#脚本时如何自动打开刚创建的对应脚本
Unity新建C#脚本后自动打开对应VS文件的配置方法
基础配置检查
- 打开Unity顶部菜单栏
Edit > Preferences(Mac端路径为Unity > Settings),进入External Tools设置页 - 确认
External Script Editor下拉选中的是你本地安装的对应版本Visual Studio,不要选择Open by file extension或者其他不相关的程序 - 在下方
Generate .csproj files for区域,勾选所有和本地项目关联的选项(本地包、嵌入包、注册表包按需勾选即可),点击Regenerate project files按钮重新生成项目和VS的关联文件 - 确认
Editor Attaching选项处于勾选状态,该选项负责Unity和Visual Studio之间的进程通信
Visual Studio侧关联修复
- 打开Visual Studio,通过顶部菜单栏
Extensions > Manage Extensions找到Visual Studio Tools for Unity插件,确认插件已启用,若版本落后直接更新到最新版,完成后重启VS和Unity - 若插件状态正常仍无法联动,打开系统应用列表找到Visual Studio,点击「修改」进入安装配置页,确认
使用Unity的游戏开发工作负载已勾选安装,缺失组件补装完成后重启设备再测试
缓存异常修复
如果配置全对还是无法自动打开,一般是本地缓存错乱导致:
- 完全关闭Unity和Visual Studio
- 进入项目根目录,删除以下内容:
- 隐藏文件夹
.vs - 项目缓存文件夹
Library - 所有后缀为
.csproj、.sln的项目关联文件
- 隐藏文件夹
- 重新打开Unity,等资源全量导入完成后再测试新建脚本,绝大多数缓存问题通过该操作都能解决
兜底自定义实现
如果以上操作全部完成仍不生效,可以通过编辑器脚本监听资源创建事件强制打开新脚本:
将以下代码放入项目中任意名为
Editor的文件夹下即可生效,新建C#脚本时会自动触发打开逻辑
using UnityEditor; using System.IO; public class AutoOpenNewCSharpScript : AssetPostprocessor { static void OnAssetCreated(string assetPath) { if (Path.GetExtension(assetPath) == ".cs") { EditorApplication.delayCall += () => { MonoScript targetScript = AssetDatabase.LoadAssetAtPath<MonoScript>(assetPath); if (targetScript != null) { AssetDatabase.OpenAsset(targetScript); } }; } } }
内容的提问来源于stack exchange,提问作者Toash
相关产品推荐
相关产品推荐

