我们知道Unity4.x中,当在Asset目录中右键创建shader时默认新建的shader为unity的surface shader,而在5.x中,创建shader的选项中变成了四个shader模板,分别是Standard Surface Shader,Unlit Shader,Image Effect Shader 和 Compute Shader。可以看到原先默认的Surface Shader被Standard Surface Shader取代了,尽管Surface Shader的功能在5.x中仍然是存在的。
但如果我们仍希望使用Surface Shader为模板去编写shader,或者是希望编写一个针对UGUI的shader,那么就意味着我们需要新建一个shader并手动去修改shader的内容。
为了避免这种麻烦,实际上我们可以通过编写编辑器扩展,来扩充右键创建shader模板的数量,甚至可以自定义一些自己可能常用的shader模板。
如下是我扩展后的右键创建shader的选项:
可以看到我在shader创建面板加入了4.x的Surface Shader,同时还加入了UI-Default和UI-DefaultFont shader,这样当我需要编写一个基于UGUI的shader时就不必再从头将UGUIshader必须的模板测试部分等重新打一遍了。
接下来讲一下实现方式