Sublime如何配置Unity Shader高亮 Sublime Shader语法支持【配置】

9次阅读

sublime Text 打开 .shader 文件无语法高亮,需先安装 Package Control,再安装 unity-Shader 或 ShaderLanguages 插件,并手动设置右下角语法模式为 Unity ShaderLab;若需函数补全和跳转,须在 Unity-Shader 设置中正确配置 Shader_path 指向 Unity 的 CGIncludes 目录。

Sublime如何配置Unity Shader高亮 Sublime Shader语法支持【配置】

sublime text 打开 .shader 文件没颜色?先装 Package Control

没装包管理器,后面所有插件都装不了——这是 90% 新手卡住的第一步。Sublime 默认不带 Package Control,必须手动安装。

  • Ctrl+`windows/linux)或 Cmd+`macOS)打开控制台,粘贴官网最新安装命令(2026 年仍有效):
    import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d882f09'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.proxyHandler())); by = urllib.request.urlopen('https://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join(ipp, pf), 'wb').write(by)
  • 回车执行,等待提示 “successfully installed”,重启 Sublime
  • 重启后按 Ctrl+Shift+P(Win)或 Cmd+Shift+Pmac),输入 Package Control: Install Package 能响应,就说明装好了

装哪个插件?别选错:Unity-Shader ≠ ShaderLanguages

搜 “shader” 会出来一插件,但真正支持 Unity 完整 ShaderLab 结构(PropertiesSubShaderCGPROGRAMFallback)的只有两个主流选项,它们定位不同:

  • Unity-ShadergitHub: petereichinger/Unity3D-Shader):语法高亮 + 基础补全(如 _MainTextex2DUNITY_MATRIX_MVP),需手动配置内置函数路径,适合想查定义的开发者
  • ShaderLanguages:轻量级高亮,支持 .shader.cginc,右下角可手动切换为 Unity ShaderLab 模式,但无补全、无跳转
  • ⚠️ 避坑:别装 Unity3D Shader Highlighter and Snippets(已多年未更新,2026 年在 ST4 下常崩溃)

装完插件还是灰白一片?手动指定语法模式

插件装完不会自动生效——Sublime 不会根据文件后缀猜语言,尤其 .shader 不是标准扩展名,必须人工绑定。

  • 打开任意 .shader 文件
  • 看窗口右下角,当前显示可能是 Plain TextShaderLab(取决于插件)
  • 点击右下角文字 → 在弹出菜单中选择:Unity ShaderLabUnity-Shader 插件) 或 ShaderLanguages → Unity ShaderLabShaderLanguages 插件)
  • ✅ 成功标志:ShaderPropertiesPass 变蓝,CGPROGRAM/ENDCG 变绿,注释变灰

想补全内置函数和跳转定义?必须配 Shader_path

只装插件,tex2DUNITY_MATRIX_VP 这些不会补全,更没法 F12 跳转——因为 Sublime 不知道 Unity 的 CGIncludes 在哪。

  • Preferences → Package Settings → Unity-Shader → Settings – User
  • 填入你本机 Unity 安装路径下的内置着色器目录,例如:
    { "Shader_path": "C:/Program Files/Unity/Hub/Editor/2022.3.25f1/Editor/Data/CGIncludes" }

    (Windows)或

    { "Shader_path": "/applications/Unity/Hub/Editor/2022.3.25f1/Editor/Data/CGIncludes" }

    macos

  • 路径必须真实存在,且结尾不能带斜杠;如果用的是 Unity Hub,注意版本号要和当前项目一致,否则函数签名可能对不上
  • 配完重启 Sublime,再打开 .shader,输入 tex 就会弹出 tex2Dtex2Dlod 等候选项

最容易被忽略的一点:Unity-Shader 插件的补全依赖本地 .cginc 文件的完整解析,如果路径指向空目录或旧版 Unity,补全列表会直接消失——不是插件坏了,是它“看不见”函数定义。建议先用资源管理器确认 CGIncludes 目录里有 UnityCG.cgincLighting.cginc 再重启。

text=ZqhQzanResources