Sublime Text & Unity Shader

使用Sublime Text 写Shader

想要用VS写C#,但是不想用VS写Shader,感觉不好用。

目标: 双击xxx.shader打开Sublime Text。

首先安装SublimeText,然后设置环境变量。
在这里插入图片描述

首先把下面的脚本放到Assets里的任意’Editor’文件夹里。

/*
 * SublimeOpen.cs
 * 
 */

using UnityEngine;
using UnityEditor;
using System;

public class SublimeOpen
{
    //用于打开 Unity 中某个资源的回调属性(例如,双击 Project Browser 中的某个资源时会触发回调)。
    //将此属性添加至某个静态方法后,系统会在 Unity 即将打开资源时调用该方法。该方法应有以下签名之一:
    //static bool OnOpenAsset(int instanceID, int line)
    //static bool OnOpenAsset(int instanceID, int line, int column)
    //如果处理了资源打开操作,则返回 true,如果资源应该由外部工具打开,则返回 false。

    //OnOpenAssetAttribute 具有提供回调中的顺序索引的选项,
    //从 0 开始。如果您有多个 OnOpenAssetAttribute 回调并想以特定顺序调用它们,此选项将非常有用。系统将从零开始按顺序调用回调。

    //[Unity 2020.3.8]
    //Unity的示例从1开始,我尝试后仍旧会由VS打开,改由从0开始,就可以了。

    [UnityEditor.Callbacks.OnOpenAsset(0)]
    public static bool step1(int instanceID, int line)
    {
        return false;
    }

    [UnityEditor.Callbacks.OnOpenAsset(1)]
    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"))
        {
            //我们通过环境变量访问Sublime Text
            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;
                startInfo.Arguments = "\"" + strFileName + "\"";
                Debug.Log(startInfo.FileName + " \t " + startInfo.Arguments);
                process.StartInfo = startInfo;
                process.Start();
                return true;
            }
            else
            {
                Debug.Log("Not Found Enviroment Variable 'SublimeText_Path'.");
                return false;
            }
        }
        return false;
    }
}

下载插件: SublimeText & Unity Shader

首选项 -> 浏览插件目录

解压至此
解压到这个目录下。

修改Unity内置文件引用路径:
在这里插入图片描述
在这里插入图片描述

重启SublimeText。

如果shader文件没有高亮,可以尝试关掉再打开。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值