【Unity】使用sublime编辑unityshader

用VS编辑shader时候,安装HLSL插件,还是很少提示,不会代码补全,高亮也比较少。

用VS Code也不会代码补全,也不会跳转,试了试sublime,似乎是更好一些,没有用过sublime,把安装和设置步骤总结一下。

一、下载安装sublime

1.下载: http://www.sublimetextcn.com/Sublime%20Text3_64.exe

2.安装:

 我安装之后就是已经汉化的了,这里不需要汉化。

3.设置环境变量

(这里设置环境变量是为后面配置unityshder跳转使用)

设置Sublime Text的环境变量 SublimeText_Path

二、设置Unity的Shader文件双击跳转sublime

1.在Assets的Editor文件夹中添加ShaderEditor.cs,代码如下:

using UnityEngine;
using UnityEditor;
using System;

public class LuaTxtEditor
{

    //http://www.xuanyusong.com/archives/3702 
    [UnityEditor.Callbacks.OnOpenAssetAttribute(1)]
    public static bool step1(int instanceID, int line)
    {
        return false;
    }

    [UnityEditor.Callbacks.OnOpenAssetAttribute(2)]
    public static bool step2(int instanceID, int line)
    {
        string strFilePath = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
        string strFileName = System.IO.Directory.GetParent(Application.dataPath) + "/" + strFilePath;

        if (strFileName.EndsWith(".shader"))
        {
            string strSublimeTextPath = Environment.GetEnvironmentVariable("SublimeText_Path");
            if (strSublimeTextPath != null && strSublimeTextPath.Length > 0)
            {
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                startInfo.FileName = strSublimeTextPath + (strSublimeTextPath.EndsWith("/") ? "" : "/") + "sublime_text.exe";
                startInfo.Arguments = """ + strFileName + """;
                process.StartInfo = startInfo;
                process.Start();

                //Debug.Log(startInfo.FileName + " 	 " + startInfo.Arguments);

                return true;
            }
            else
            {
                Debug.Log("Not Found Enviroment Variable 'SublimeText_Path'.");

                return false;
            }            
        }

        return false;
    }

}

2.重启Unity,即可实现shader双击跳转

三、安装sublime的unityshader插件,实现高亮和代码补全

1.下载sublime的插件:

github中下载zip即可: https://github.com/cjsjy123/Unity-Shader

或者通过我已上传的压缩包直接下载:https://files.cnblogs.com/files/weigangblog/Unity-Shader.zip

2.安装插件:

将压缩包解压到sublime安装目录的Data中的Package目录,或通过sublime面板的 首选项--浏览插件 查看目录。

随后就可以在 首选项--插件设置 中看到UnityShader

3.设置插件解压目录下的UnityShader.sublime-settings文件

{
    // must set the path and version  u5 or u4
    "Unity_Version":"U5",
    "Shader_path": "D:/Program Files/Unity2018.4.21/Editor/Data/CGIncludes",
    "U5_Shader_path":"D:/Program Files/Unity2018.4.21/Editor/Data/CGIncludes"
}
Shader_path和U5_Shader_path是Unity安装文件夹下的CGIncludes文件夹

随后再打开unity的shader就会显示高亮,并且可以自动补全。

原文地址:https://www.cnblogs.com/weigangblog/p/14463510.html