首先是shader的基础结构:
1 Shader "Custom/Example 2 { 3 Properties//变量属性面板 4 { 5 } 6 SubShader 7 { 8 Tags { "RenderType"="Opaque" }//设置渲染状态和标签 9 LOD 100 10 Pass 11 { //开始cg代码片段 12 CGPROGRAM 13 #pragma vertex vert//顶点着色器 14 #pragma fragment frag//片段着色器 15 #include "UnityCG.cginc" 16 17 struct appdata; 18 struct v2f; 19 v2f vert (appdata v){} 20 fixed4 frag (v2f i) : SV_Target{} 21 ENDCG 22 } 23 } 24 }
然后 Properties面板的定义:
实际代码:
1 Properties 2 { 3 _MyColor ("MyColor", Color) = (1,1,1,1) 4 _MyVector("MyVector",Vector)=(1,2,3,4) 5 _MyRange("MyRange",Range(1,100))=1 6 _MyFloat("MyFloat",float)=0 7 _My2D("My2D",2D)="white"{}//white指的是无图片的默输出颜色 8 _My3D("My3D",3D)="white"{} 9 _MyCube ("MyCube", Cube) = "_Skybox" { } 10 }
面板效果: