溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

unity中如何實現(xiàn)UGUI遮罩流光特效

發(fā)布時間:2022-01-05 14:14:37 來源:億速云 閱讀:694 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關unity中如何實現(xiàn)UGUI遮罩流光特效的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

下面是核心shader:

Shader "UI/Unlit/Flowlight"{  Properties  {    [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}    _Color("Tint", Color) = (1, 1, 1, 1)    [MaterialToggle] _OffSet("OffSet", float) = 0    [MaterialToggle] PixelSnap("Pixel snap", float) = 0
   /* Flowlight */    _FlowlightMaskTex("Mask Texture", 2D) = "white" {}    _FlowlightTex("Add Move Texture", 2D) = "white" {}    _FlowlightColor("Flowlight Color", Color) = (0, 0, 0, 1)    _Power("Power", float) = 1    _SpeedX("SpeedX", float) = 1    _SpeedY("SpeedY", float) = 0    /* --------- */
   /* UI */    _StencilComp("Stencil Comparison", Float) = 8    _Stencil("Stencil ID", Float) = 0    _StencilOp("Stencil Operation", Float) = 0    _StencilWriteMask("Stencil Write Mask", Float) = 255    _StencilReadMask("Stencil Read Mask", Float) = 255    /* -- */  }
 SubShader  {    Tags    {      "Queue" = "Transparent"      "IgnoreProjector" = "True"      "RenderType" = "Transparent"      "PreviewType" = "Plane"      "CanUseSpriteAtlas" = "True"    }
   Cull Off    Lighting Off    ZWrite Off    Blend One OneMinusSrcAlpha
   /* UI */    Stencil    {      Ref[_Stencil]      Comp[_StencilComp]      Pass[_StencilOp]      ReadMask[_StencilReadMask]      WriteMask[_StencilWriteMask]    }    /* -- */  Pass  {    CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile _ PIXELSNAP_ON#include "UnityCG.cginc"
 struct appdata_t  {    float4 vertex : POSITION;    float4 color : COLOR;    float2 texcoord : TEXCOORD0;  };
 struct v2f  {    float4 vertex : SV_POSITION;    fixed4 color : COLOR;    half2 texcoord : TEXCOORD0;
   /* Flowlight */    half2 texflowlight : TEXCOORD1;    /* --------- */  };
 fixed4 _Color;
 /* Flowlight */  fixed4 _FlowlightColor;  float _Power;  sampler2D _FlowlightTex;  fixed4 _FlowlightTex_ST;  sampler2D _FlowlightMaskTex;  fixed4 _FlowlightMaskTex_ST;  fixed _SpeedX;  fixed _SpeedY;  fixed x = 0;  float _OffSet;  /* --------- */  v2f vert(appdata_t IN)  {    v2f OUT;    OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);    OUT.texcoord = IN.texcoord;    /* Flowlight */    OUT.texflowlight = TRANSFORM_TEX(IN.texcoord, _FlowlightTex);    OUT.texflowlight.x += _Time * _SpeedX;    OUT.texflowlight.y += _Time * _SpeedY;    OUT.color = IN.color * _Color;#ifdef PIXELSNAP_ON    OUT.vertex = UnityPixelSnap(OUT.vertex);#endif    return OUT;  }
 sampler2D _MainTex;
 fixed4 frag(v2f IN) : SV_Target  {    fixed4 c = tex2D(_MainTex, IN.texcoord)*IN.color;    fixed4 cmask = tex2D(_FlowlightMaskTex, IN.texcoord);  if (cmask.a != 0)  {    /* Flowlight */    fixed4 cadd = tex2D(_FlowlightTex, IN.texflowlight) * _Power;    cadd.rgb *= c.rgb;    c.rgb += cadd.rgb;  }  c.rgb *= c.a;  /* --------- */
 return c;  }    ENDCG  }  }}

感謝各位的閱讀!關于“unity中如何實現(xiàn)UGUI遮罩流光特效”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI