Sublime Text 可通过配置胜任 Unity C# 开发,关键需正确安装 Mono 和 OmniSharp、精准设置 Unity DLL 路径、修复 C# 注释快捷键、规范外部工具参数格式。

Sublime Text 本身不是 IDE,但通过合理配置,它能胜任 Unity C# 脚本的日常编写——关键在于补全、跳转、语法高亮和构建联动这四件事是否到位。OmniSharp 是目前最稳定的选择,但它的行为高度依赖 Mono 运行时和 Unity 相关 DLL 的路径准确性,配错一步就几乎不工作。
OmniSharp 插件安装与 Mono 依赖必须同步完成
OmniSharp 不是纯 Python 插件,它背后跑的是一个 .NET/Mono 进程。在 Windows/macOS 上,必须先装好 Mono(不是 .NET SDK),再装 OmniSharp,否则插件会静默失败,控制台无报错,但 . 触发不了补全。
- Windows 用户:从 mono-project.com 下载并安装最新 stable 版 Mono,路径中不能含空格或中文
- macOS 用户:用
brew install mono,别用 MacPorts 或手动编译版本 - 安装 OmniSharp 后,重启 Sublime,按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Win/Linux)输入OmniSharp: Restart Server,观察右下角状态栏是否显示 “OmniSharp server started” - 如果提示 “Failed to start OmniSharp server”,打开 Sublime 控制台(
Ctrl+`),看最后一行是否含mono: command not found或路径错误
Unity 相关 DLL 路径必须写进 .sublime-project,不能只靠全局设置
OmniSharp 默认只加载项目目录下的引用,而 Unity 的核心 DLL(如 UnityEngine.dll)根本不在你的 Assets 文件夹里。硬编码路径到工程文件里是唯一可靠方式,且路径必须绝对、可访问、不含符号链接。
- 在 Unity 项目根目录新建或编辑
MyGame.sublime-project - 确保
"folders"指向 Unity 项目根(即含Assets、ProjectSettings的目录) - 在
"settings"下添加"omnisharp_assemblies"数组,例如:
{
"folders": [
{
"path": "/Users/you/UnityProjects/MyGame"
}
],
"settings": {
"omnisharp_assemblies": [
"/Applications/Unity/Hub/Editor/2021.3.15f1/Unity.app/Contents/Managed/UnityEngine.dll",
"/Applications/Unity/Hub/Editor/2021.3.15f1/Unity.app/Contents/Managed/UnityEditor.dll"
]
}
}
- 路径要根据你本地 Unity Hub 安装的实际版本调整;Windows 用户注意反斜杠要双写或改用正斜杠
- 别把
nunit.framework.dll或UnityScript.dll加进去——它们已废弃,加了反而触发 OmniSharp 解析失败
ctrl+/ 注释失效?直接改 JavaScript 的 Comments.tmPreferences
Sublime 的注释逻辑由语法定义文件控制,C# 没有独立注释规则,复用的是 JavaScript 的。但默认配置里没包含 source.cs,所以快捷键没反应。
- 菜单 →
Preferences > Browse Packages…→ 进入JavaScript文件夹 - 找到并用 Sublime 打开
Comments.tmPreferences - 搜索
,把整行改成source.js source.js, source.cs - 保存后,新开一个
.cs文件测试ctrl+/是否能加//行注释
Build System 无法调起 Unity 编译?检查外部工具参数格式
Unity 通过命令行参数通知编辑器跳转到出错位置,Sublime 需要正确解析 (File)、(Line) 这类占位符。官方文档明确要求括号是英文半角,且前后不能有空格。
- Unity 编辑器设置路径:
Edit > Preferences > External Tools > External Script Editor - 选中 Sublime 后,在
Arguments栏填入:"(File)":(Line)(注意:引号必须存在,冒号前后无空格) - 不要写成
"(File)": (Line)或(File):(Line),后者会导致 Unity 打开空白文件 - 验证方法:在脚本里故意写个语法错误,点击 Unity 控制台报错行——应自动打开对应 .cs 文件并定位到那行
最常被忽略的一点:Unity 生成的 .sln 文件(尤其是 xxx-csharp.sln)和 Sublime 工程无关,OmniSharp 不读它;你改了 VS 的项目配置,不会自动同步到 Sublime。所有类型信息、引用路径、命名空间解析,全靠 .sublime-project 里写的那些 DLL 路径撑着——路径错一个字符,补全就归零。











