“工欲善其事,必先利其器”Shader学习工具篇

最近一直忙于录制关于Shader入门的视频教程,其中一个反复的机械动作就是右键创建所需要的新Shader。悲剧的是每次打开的都是Unity3D默认的Shader菜单,看过我关于Shader体系分类的同学都知道默认菜单Shader都是干什么的,每次都要选择,每次都要删除一些多余的代码,并不是新手学习所需要的简单的Vertex frage shader和简单Surface shader。

“身为一个程序员,必须有懒得气质,必须干掉这样的重复的操作!”

“怎么能让我们的可爱同学把宝贵的时间花在做重复的事情上呢?”

在这两点的驱动下,终于“功夫不负有心人”在百度的帮助下我找到了大神的神作,

http://blog.csdn.net/mobilebbki399/article/details/51869487

【Unity编辑器】Unity基于模板生成代码的原理与应用

学习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扩展的更多相关文章

  1. Spring MVC 项目搭建 -6- spring security 使用自定义Filter实现验证扩展资源验证,使用数据库进行配置

    Spring MVC 项目搭建 -6- spring security使用自定义Filter实现验证扩展url验证,使用数据库进行配置 实现的主要流程 1.创建一个Filter 继承 Abstract ...

  2. SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件

    本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...

  3. Android自定义视图一:扩展现有的视图,添加新的XML属性

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

  4. 使用自定义验证组件库扩展 Windows 窗体

    使用自定义验证组件库扩展 Windows 窗体             1(共 1)对本文的评价是有帮助 - 评价此主题                          发布日期 : 8/24/20 ...

  5. [Visual Studio] 自定义项目模板(.vsix扩展)

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  6. EFCore3.1+编写自定义的EF.Functions扩展方法

    前言 本文主要是讲解EF Core3.0+ 如何实现自定义的数据库扩展函数 虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密.. 这样的话 我们就需要自己扩展这些数据库函 ...

  7. 自定义路径创建Cocos2d-x项目

    自定义路径创建Cocos2d-x项目 本文介绍windows下面如何优雅的创建Cocos2d-x项目.为何称之为优雅,是因为现在网上流传的一些创建方法有一些问题.大致内容如下: l  使用VS向导创建 ...

  8. 教程:使用Diskpart创建、扩展或删除磁盘分区

    在Windows Server环境下进行基本的磁盘操作时,管理员可以使用Disk Partition Utility或Diskpart等工具.后者是一个命令行解释器,可作为磁盘管理工具. 管理员可以使 ...

  9. java版微信公众平台自定义菜单创建代码实现

    微信公众平台自定义菜单创建代码实现—java版 搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知 ...

随机推荐

  1. vue 之 render 函数不能渲染非全局自定义函数-方案

    import customCom from 'xxx.vue' render: (h) => { return h(customCom) }

  2. Java集合--整体框架

    Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...

  3. Oracle 按一行里某个字段里的值分割成多行进行展示

    with t as ( select '111,222,333' col from dual union all select '444,555,666' col from dual ) , leve ...

  4. 表单文本字段预期描述(placeholder="请输入产品名称"以及prompt:'输入价格')

    普通html文本标签设置: <input id="xxx" placeholder="请输入产品名称"/> 带有jQueryEasyUI插件的htm ...

  5. SVN错误之“copy admin area is missing”

    1.将对应冲突的文件夹备份一份 2.再复制一份到别的地方,资源管理器搜索.svn全部删除掉 3.删掉本地svn目录里的冲突文件,update一下父目录,显示ok 4.把刚才删掉.svn的目录复制覆盖过 ...

  6. Group by,并汇总求和

    static void Main(string[] args) { bbb(); Console.ReadKey(); } public static List<Dto> toAdd() ...

  7. 华为云:实现高可用的负载均衡web集群

    华为云: 2台云主机做负载均衡调度 >>申请一个虚拟浮动ip,并绑定一个弹性公网ip >>将两台云主机绑定到虚拟浮动ip上 3台web服务器 1台云服务器做jumpserver ...

  8. 爬取前尘无忧python职位信息并保存到mongo数据库

    1.re实现 import re,os import requests from requests.exceptions import RequestException MAX_PAGE = 10 # ...

  9. 评估类模型之优劣解距离法Topsis模型

    定义: TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距. 层次分析法的局限性: 问题和解决方案: 所以最终评分公式为: 指标正向化,得到正向 ...

  10. Java_hutool 发起请求

    //执行接口 String realUrl = "http://localhost:8091/SzeportCodeService/MSGService/encryptAES"; ...