这篇文章给大家分享的是有关unity中如何实现UGUI遮罩流光特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都工商代办等,在网站建设公司、成都全网营销、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
下面是核心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 OffLighting OffZWrite OffBlend 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_ONOUT.vertex = UnityPixelSnap(OUT.vertex);#endifreturn 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中如何实现UGUI遮罩流光特效”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!