Shader "Custom/FragBase" { Properties{ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2 // Off [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 // LEqual [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Float) = 1 [Enum(UnityEngine.Rendering.BlendMode)] _SrcFactor("Src Factor", Float) = 5 // SrcAlpha [Enum(UnityEngine.Rendering.BlendMode)] _DstFactor("Dst Factor", Float) = 10 // OneMinusSrcAlpha //ステンシル _StencilRef("StencilRef",Float) = 0 [Enum(UnityEngine.Rendering.StencilOp)] _StencilPass("StencilPass",Float) = 0 //https://docs.unity3d.com/ScriptReference/Rendering.CompareFunction.html [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("StencilComp",Float) = 0 _MainTex("MainTex",2D) = "white"{} [HDR] _Color("Color",Color) = (1,1,1,1) } SubShader{ Tags{"RenderType"="Opaque" "Queue" = "Geometry"} //透明部分のあるテクスチャを使う場合 //Tags{"Queue" = "Transparent" "RenderType" = "Transparent"} ///Blend SrcAlpha OneMinusSrcAlpha Cull [_Cull] ZTest [_ZTest] ZWrite [_ZWrite] Blend [_SrcFactor][_DstFactor] Stencil{ Ref [_StencilRef] Comp [_StencilComp] Pass [_StencilPass] } Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex:POSITION; float2 uv:TEXCOORD0; }; struct v2f { float4 pos:SV_POSITION; float2 uv:TEXCOORD0; }; float4 _MainTex_ST; sampler2D _MainTex; float4 _Color; v2f vert(appdata v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } float4 frag(v2f i) :SV_Target { return tex2D(_MainTex,i.uv)*_Color; } ENDCG }//Pass }//SubShader FallBack "Diffuse" }