unity3d shader 代码控制开关属性

来源:互联网 发布:淘宝冷门类目 编辑:程序博客网 时间:2024/05/16 17:04

直接上代码shader

Shader "ShaerTest" {Properties {    _Color("Tint",Color ) = (0.5,0.5,0.5,0.5)    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}    [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Src Blend Mode", Float) = 1  //声明外部控制开关    [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Dst Blend Mode", Float) = 1  //声明外部控制开关    [Enum(Off, 0, On, 1)] _ZWrite ("ZWrite", Float) = 0  //声明外部控制开关    [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest ("ZTest", Float) = 0  //声明外部控制开关    [Enum(UnityEngine.Rendering.CullMode)] _Cull ("Cull Mode", Float) = 1  //声明外部控制开关}SubShader {    Tags {"Queue"="Geometry" "RenderType"="Opaque"}    LOD 200    Blend [_SrcBlend] [_DstBlend] //获取值应用    ZWrite [_ZWrite] //获取值应用    ZTest [_ZTest] //获取值应用    Cull [_Cull] //获取值应用    Pass {          CGPROGRAM            #pragma vertex vert            #pragma fragment frag            #include "UnityCG.cginc"            struct appdata_t {                float4 vertex : POSITION;                float2 texcoord : TEXCOORD0;                fixed4 color : COLOR;            };            struct v2f {                float4 vertex : SV_POSITION;                half2 texcoord : TEXCOORD0;                fixed4 color : TEXCOORD1;            };            sampler2D _MainTex;            float4 _MainTex_ST;            fixed4 _Color;            v2f vert (appdata_t v)            {                v2f o;                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);                o.color = v.color;                return o;            }            fixed4 frag (v2f i) : SV_Target            {                fixed4 col = tex2D(_MainTex, i.texcoord)*_Color * i.color;                return col;            }        ENDCG    }}}   [Enum(UnityEngine.Rendering.CullMode)] _Cull ("Cull Mode", Float) = 1        [Enum(Off,0,On,1)] _ZWrite ("ZWrite", Float) = 1        [Enum(Less,0, Greater,1, LEqual,2, GEqual,3, Equal,4, NotEqual,5, Always,6)] _ZTest ("ZTest", Float) = 1        [Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend ("Source Blend Mode", Float) = 2                [Enum(UnityEngine.Rendering.BlendMode)] _DestBlend ("Dest Blend Mode", Float) = 2

C#代码 下面举例一个 其他的你懂的

gameObject.GetComponent<MeshRenderer>().sharedMaterial.SetInt("_ZWrite", 1);
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 打印机显示电话怎么办 hpm1136漏墨怎么办 二保焊收弧有气孔怎么办 跑不动怎么办 高校邦孙子兵法怎么办? 军事理论网课挂科怎么办 军事理论挂科怎么办 军事理论没去考怎么办 脸部增生疤痕怎么办 tprk 出现haze怎么办 眼角膜水肿怎么办 眼水肿怎么办 眼睛角膜水肿怎么办 眼角膜一直水肿怎么办 儿童角膜水肿怎么办 小孩角膜水肿怎么办 糖尿病人腿疼怎么办 cart治疗复发怎么办 腹部不会用力怎么办 大檐帽大了怎么办 大檐帽太大怎么办 大檐帽戴着大怎么办 幼儿腹痛呕吐怎么办 小孩拉肚子肚子疼怎么办 腹痛呕吐怎么办 腹胀呕吐怎么办 腹泻呕吐怎么办 幼儿腹痛怎么办 革腰带硬怎么办 建行卡输错两次怎么办 邮政卡输错两次怎么办 pin码输错两次怎么办 耳屎太多怎么办 一直有痰有鼻涕怎么办 鼻涕进入耳朵怎么办 鼻涕扯出来怎么办 左侧鼻子出血怎么办 鼻子从来不流血怎么办 吹鼻涕流鼻血怎么办 鼻炎引发流鼻血怎么办 鼻子鼻炎出血怎么办