用Visual Studio写shader实在蛋疼,那可能就会有人要问了,为啥不用插件可视化制作shader呢?因为我是新手,新手还是老老实实敲代码,慢慢来…

所以试着在网上找找,有没有类似的插件或者编辑器,被我找到了,也基本符合我的要求。

我想实现的效果如下:双击xxx.shader打开Sublime Text,可在Sublime Text中对常用的函数进行提示,并支持函数的跳转。

这就分为二个功能:

1、双击shader文件打开Sublime Text;

2、使用Sublime Text来编辑shader;

第一个功能,比较简单,在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 + " \t " + startInfo.Arguments);return true;}else{Debug.Log("Not Found Enviroment Variable 'SublimeText_Path'.");return false;}            }return false;}}

然后,你需要设置 Sublime Text的环境变量 SublimeText_Path (如下图所示)

此时,双击 shader 可能仍无法直接打开 Sublime Text。你需要关闭 Unity,重启桌面进程 —— 让环境变量生效(任务管理器 kill 掉进程 explorer.exe,然后再新建任务 explorer.exe)

第二个功能,安装Sublime Text的插件

网上已经有人做好了,直接拿过来用即可。文章链接请参考  http://blog.csdn.net/w88219003/article/details/46682507

  • 下载插件包,前往 https://github.com/cjsjy123/Unity-Shader 直接下载zip文件。
  • 安装 package,Sublime Text菜单 Preferences –> Browse Packages,将zip文件解压到该目录下,重命名文件夹为 Unity-Shader,如下图所

  • 修改源码 unityShader.py,原因代码写的有问题,并没有读取 User 的配置,一直报错“U5_Shader_path no set”。我查看源码,发现按作者写的设置了Shader_path没用,原因见代码

上面画圈的那里,代码写的有点迷糊,如果使用 U5,为啥还要设置 Shader_path呢?

知道报错的原因,直接改文件:UnityShader.sublime-settings

{// must set the path and version  u5 or u4"Unity_Version":"U5","Shader_path": "K:/Unity/Editor/Data/CGIncludes","U5_Shader_path":"K:/Unity/Editor/Data/CGIncludes"
}

上面的K:/xxx,改成你自己的路径,然后就可以愉快的用起来了,是支持跳转的。Shader_path是Unity内置的着色器,以.cginc结尾。在Unity Setup Path/Editor/Data/CGIncludes 目录下

转载于:https://www.cnblogs.com/meteoric_cry/p/7880514.html

用SublimeText当Unity Shader的编辑器相关推荐

  1. unity shader 编辑器扩展类 ShaderGUI

    这应该unity5才出的新功能了,今天看文档时刚巧看到了,就来尝试了一下. 效果如图: shader 的编辑器扩展分为2种方法: 是通过UnityEditor下的ShaderGUI类来实现的,形式比较 ...

  2. vs unity shader插件_一些Shader资料

    [Unity Shader] 常用的数值类型和语义 unity shader编辑器语法高亮插件 Unity Shader-法线贴图(Normal)及其原理 Unity 提供的CG/HLSL语义 (se ...

  3. 《Unity Shader入门精要》 第五章 开始学习Unity Shader之旅 笔记

    开始学习Unity Shader之旅 最简单的片元着色器 #pragma vertex vert #pragma fragment frat 告诉Unity那个函数包括顶点着色器的代码,哪个函数包括片 ...

  4. Unity Shader特效:人物模型动态流动光特效

    本文写于2017-6-6,转载请注明 以下为正文 ---------------------------------------------------------- 先上效果图: Shader界面图 ...

  5. 【Unity Shader学习笔记】(五)使用鼠标绘制自由多边形(附完整工程源码)

    前言 在前面的文章中,我们已经了解了怎样使用Unity Shader来绘制简单的点和线,本文将延续上次的话题,讲述一下如何在场景中使用Unity Shader绘制自由多边形. 本文所述的程序,支持在地 ...

  6. Unity Shader入门学习(5):基础屏幕后处理

    1.后处理基类 //屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效. //基类的作用有二:检测平台是否支持后处理效果,及创建一个用于处理渲 ...

  7. 如何用Unity Shader制作类似《炉石传说》卡牌的动态效果?

    此篇为鄙人在卡牌项目中,尝试模仿<炉石传说>卡面特效所制作的特效Shader总结回顾,几经修改,最终成为了现在的样子,因为使用简单,效果明显,虽然距离<炉石传说>的卡面特效还有 ...

  8. 【Unity Shader编程】之十五 屏幕高斯模糊(Gaussian Blur)后期特效的实现

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/51871531 作者:毛星云(浅 ...

  9. 【Unity Shader编程】之十四 边缘发光Shader(Rim Shader)的两种实现形态

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/51764028 作者:毛星云(浅 ...

最新文章

  1. FPGA 之 VGA的IP核编写
  2. 我为什么要这么功利?
  3. 【BIM入门实战】Revit 图元分类有哪三种?Revit图元分类图文详解
  4. java将图片(jpg/bmp/png)转16位bmp(RBG565)
  5. sql语句中case_SQL中的CASE语句
  6. 变分自编码器(VAE)详解与实现(tensorflow2.x)
  7. 深度学习TF—1.TensorFlow2基本操作
  8. 响应式编程笔记三:一个简单的HTTP服务器
  9. java redis令牌桶_Redis令牌桶算法在限速中的应用
  10. 机器人潘森护盾_新版潘森无伤抗塔 还能抵消死歌大招?E技能护盾机制全解析!...
  11. Unit3D--人机交互入门
  12. mysql查询慢的原因_MySQL查询缓慢的N种原因,以及N+1种解决方法
  13. cocos creator 广告控制脚本
  14. 开篮球馆需要什么_开一个篮球馆怎么样?开篮球馆需要办理什么手续?
  15. 游戏社区App (三):客户端与服务端的加密处理 和 登录
  16. 写一个php简单的递归函数
  17. 用java下载apk解析包出错_Android 9.0 安装包解析错误 java.lang.SecurityException: Permission Denial解决方案...
  18. Three.js - 图形界面工具(lil-gui)(四)
  19. 95后能拯救结婚行业吗?《2018美团点评结婚行业蓝皮书》发布
  20. 网站接入支付宝支付之扫码支付

热门文章

  1. oracle rac 通信端口,浅析Oracle 10g rac更改listener端口
  2. github-markdown-css 使用简解,markdown文案格式优化(笔记)
  3. 云开发无需服务期无需域名壁纸小程序源码
  4. 今天用充QQ币的时候,发现选择网银的时候,竟然会跳出一个错误
  5. .NET牛人应该知道些什么(转)?
  6. 发生一个未处理的异常 脚本调试 错误号2912
  7. Mysql: LBS实现查找附近的人 (两经纬度之间的距离)
  8. js网页顶部线性页面加载进度条,jquery头部线性进度条总结
  9. UITableView 系列一 :基本使用方法 (显示,删除,添加图片,添加样式等) (实例)...
  10. Robust Regression_2016_鲁棒回归推导