写Shader的IDE工具合集

写了一段时间shader,觉得还是有必要找个合适的IDE,以达到事半功倍的效果,提高效率。

1.最早官方的MonoDevelop编辑器

2.Visual Studio

3. Visual Studio Code +扩展组件unity3d-pack

其中unity3d-pack包含ShaderlabVSCode(Free)

4.Visual Studio 2017 + HLSL Tools for Visual Studio

安装教程

5.Visual Studio +ShaderlabVS

官方商店介绍

6.Sublime Text + Unity-Shader

介绍安装教程
构建这个插件作者的教程
对于设置环境变量很麻烦可以直接设置成对应的程序运行地址

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 = "D:/Program Files/Sublime Text 3";
            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 + " \t " + startInfo.Arguments);

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

                return false;
            }
        }

        return false;
    }

}

总结

第6种方案是我目前正在使用的。没有最好的工具,只有适合你的工具,可以都尝试下。参考里面也有把自己的写的shader加入到一个库中,这样更方便。

附:参考

Shader着色器代码辅助工具
Unity3D研究院之方便找和写URP的shader
UPR Unlit Texture example

你可能感兴趣的:(shader,编辑器,shader)