Unity3D Ui利用shader添加效果
本文實例為大家分享了Unity3D Ui利用shader添加效果的具體代碼,供大家參考,具體內(nèi)容如下
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' 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 = UnityObjectToClipPos(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 } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:C#教程
下一篇:Unity3D實現(xiàn)物體旋轉(zhuǎn)縮放移動效果
本文標(biāo)題:Unity3D Ui利用shader添加效果
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4872.html
您可能感興趣的文章
- 01-10C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果
- 01-10C#圖片處理3種高級應(yīng)用
- 01-10Unity3d獲取系統(tǒng)時間
- 01-10Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作
- 01-10C#異步下載文件
- 01-10C# Console利用mspaint打開圖像并保存的方法
- 01-10C#利用delegate實現(xiàn)Javascript的each方法
- 01-10C#利用GDI繪制常見圖形和文字
- 01-10利用C#實現(xiàn)網(wǎng)絡(luò)爬蟲
- 01-10C# 利用ICSharpCode.SharpZipLib實現(xiàn)在線壓縮和解壓縮


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 04-02jquery與jsp,用jquery