我也忘了转自哪里,抱歉,感谢原作者
最近发现Unity的一个黑科技(其实很久以前就发现了,只是方便开头而已,哈哈);可以自定义材质的检视面板,通过这个功能还可以把功能差不多的着色器合并成一个。
例如有的着色器只是融合方式(Blend)、深度测试开关(ZTest)、渲染队列(RenderQueue)等等不一样,而基本的核心着色代码是一样的。这就是本文即将介绍的枚举类型(其他类型以后介绍)
1、首先看看BlendMode上的应用
Shader源码如下:
Shader "MaterialPropertyDrawer/MaterialPropertyDrawerBlendMode" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
[Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend ("Source Blend Mode", Float) = 2
[Enum(UnityEngine.Rendering.BlendMode)] _DestBlend ("Dest Blend Mode", Float) = 2
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
Blend [_SourceBlend] [_DestBlend]
CGPROGRAM
#pragma surf