U3D 自定义shader创建Editor扩展

“工欲善其事,必先利其器”Shader学习工具篇
最近一直忙于录制关于Shader入门的视频教程,其中一个反复的机械动作就是右键创建所需要的新Shader。悲剧的是每次打开的都是Unity3D默认的Shader菜单,看过我关于Shader体系分类的同学都知道默认菜单Shader都是干什么的,每次都要选择,每次都要删除一些多余的代码,并不是新手学习所需要的简单的Vertex frage shader和简单Surface shader。
“身为一个程序员,必须有懒得气质,必须干掉这样的重复的操作!”
“怎么能让我们的可爱同学把宝贵的时间花在做重复的事情上呢?”
在这两点的驱动下,终于“功夫不负有心人”在百度的帮助下我找到了大神的神作,
http://blog.csdn.net/mobilebbki399/article/details/51869487
学习Shader的同学也可以看这位大神的文章,很多中高级的知识。
虽然大神的文章很代码流,很飘逸。总结下核心思想就是通过反射系统的类方法实现创建模板到代码文件的生成,最良心的是大神给我们提供了源码。
这里其实我们不是特别关心代码运行的机制和原理(想学习的可以看大神的帖子有三篇之多,还是比较详细的),我们只关心如何扩展我们自己的Shader模板和创建菜单不用做重复工作。
适合初学者使用的代码我已经整理好了,下面讲一下大家说明下如何使用。
1、下载附件解压

2、复制Editor到Assets目录下或者Editor下内容到工程Editor中

3、复制Templates到Assets同一级目录下

4、大功告成,在U3D中右键创建Shader

最后我们在说下如何加入自己的shader模板
1、打开Editor目录下文件


打开红框的文件,我们看到创建脚本的通用方法一共有两个参数,第一个就是模板文件的路径,第二个参数是Shader默认名称,我们再看看模板文件,打开一个如下图所示,我们只要照葫芦画瓢将自定义的模板添加到Templates目录下就可以了(这块一定要注意程序代码中的路径和文件路径要对应,一般出错就是这里)。还要说下良心大神其实已经为我们准备了147个模板,我又加了两个用于学习的模板。

最后,希望大家早日能建立自己的Shader知识体系,形成自己的Shader库。
U3D 自定义shader创建Editor扩展的更多相关文章
- Spring MVC 项目搭建 -6- spring security 使用自定义Filter实现验证扩展资源验证,使用数据库进行配置
Spring MVC 项目搭建 -6- spring security使用自定义Filter实现验证扩展url验证,使用数据库进行配置 实现的主要流程 1.创建一个Filter 继承 Abstract ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...
- Android自定义视图一:扩展现有的视图,添加新的XML属性
这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...
- 使用自定义验证组件库扩展 Windows 窗体
使用自定义验证组件库扩展 Windows 窗体 1(共 1)对本文的评价是有帮助 - 评价此主题 发布日期 : 8/24/20 ...
- [Visual Studio] 自定义项目模板(.vsix扩展)
VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...
- EFCore3.1+编写自定义的EF.Functions扩展方法
前言 本文主要是讲解EF Core3.0+ 如何实现自定义的数据库扩展函数 虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密.. 这样的话 我们就需要自己扩展这些数据库函 ...
- 自定义路径创建Cocos2d-x项目
自定义路径创建Cocos2d-x项目 本文介绍windows下面如何优雅的创建Cocos2d-x项目.为何称之为优雅,是因为现在网上流传的一些创建方法有一些问题.大致内容如下: l 使用VS向导创建 ...
- 教程:使用Diskpart创建、扩展或删除磁盘分区
在Windows Server环境下进行基本的磁盘操作时,管理员可以使用Disk Partition Utility或Diskpart等工具.后者是一个命令行解释器,可作为磁盘管理工具. 管理员可以使 ...
- java版微信公众平台自定义菜单创建代码实现
微信公众平台自定义菜单创建代码实现—java版 搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知 ...
随机推荐
- v-model原理解析
vue中v-model可以实现数据的双向绑定,但是为什么这个指令就可以实现数据的双向绑定呢? 其实v-model是vue的一个语法糖.即利用v-model绑定数据后,既绑定了数据,又添加了一个inpu ...
- list交集
在C#语言程序设计中,List集合是常用的集合数据类型,在涉及集合类型的运算中,有时候我们需要计算2个List集合中共有的数据,即对2个List集合求交集运算.此时可以使用C#语言提供的Interse ...
- tarjan等
有向图注意v在栈中时,才用dfn更新low.无向图不用判断这个. SCC和边双,都是在返回时判断low==dfn. 点双就是找割点,low(v)>=dfn(u)时,把tarjan(v)过程中放入 ...
- 052_获取本机 MAC 地址
#!/bin/baship a s | awk 'BEGIN{print "本机 MAC 地址信息如下:"}/^[0-9]/{print $2;getline;if($0~/lin ...
- update更新操作的URL地址
http://localhost:8080/updateById/110?name=诸葛亮&age=3
- PostMan的详细介绍
无论是接口调试还是接口测试,postman都算的上很优秀的工具,好多接口测试平台.接口测试工具框架的设计也都能看到postman的影子,我们真正了解了这款工具,才可以在这个基础上进行自己的设计和改造. ...
- yum install 报错
把python2升级到python3以后,yum报错: [root@localhost Python-]# yum install openssl File except KeyboardInterr ...
- oracle查询历史执行语句
SELECT * FROM v$sqlarea WHERE PARSING_SCHEMA_NAME='GAVIN' and SQL_TEXT LIKE '%delete%' ORDER BY LAST ...
- Sketch教程
去年夏天开始用Sketch,觉得它放Dock里闪亮亮的很好看,当时笑称是男盆友送我的第一颗小钻石噗哈哈.所以那段时间几乎刷遍了所有关于 Sketch 的网站.文章.教程,之后又在自学设计,因为想和更多 ...
- flask 设置配置文件的方式
from flask import Flask from flask import current_app """ 配置参数设置与读取 """ ...