欢迎来到天天文库
浏览记录
ID:14404890
大小:666.00 KB
页数:66页
时间:2018-07-28
《unityd游戏开发之ngui 圆形血条、进度条制作实现详解【最新资料】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、通常,为了美化界面布局,进度条或者角色血条、经验条并不是长方形的,可能会是个圆形,看了下别人的制作过程都稍显复杂,为此整理了一份步骤非常简单的制作圆形进度条或者圆形血条、经验条的方法。 这儿我们使用了一个遮罩Shader。 先来看看最终效果图: 需要的美术素材如图所示:通常,为了美化界面布局,进度条或者角色血条、经验条并不是长方形的,可能会是个圆形,看了下别人的制作过程都稍显复杂,为此整理了一份步骤非常简单的制作圆形进度条或者圆形血条、经验条的方法。 这儿我们使用了一个遮罩Shader。 先来看看最终效果图: 需要的美术素材如图所示: 导入NG
2、UI以及布局经验条的步骤省略,最终的经验条树形结构如图: 这儿需要特别注意的是,附加到圆形经验条的NGUI组件类一定要是UITexture,因为UITexture有Material选项,这样才可以使用我们的遮罩材质。 下面是遮罩Shader的代码:Shader"Custom/CircleAlphaMask"{ Properties { _Color("MainColor",Color)=(1,1,1,1) _MainTex("Base(RGB)Trans(A)",2D)="white"{} _MaskTex("Mask(A)",2D)="white"{} _Pr
3、ogress("Progress",Range(0,1))=0.5 } Category { LightingOff ZWriteOff Cullback Fog{ModeOff} Tags{"Queue"="Transparent""IgnoreProjector"="True"} BlendSrcAlphaOneMinusSrcAlpha SubShader { Pass { CGPROGRAM #pragmavertexvert
4、 #pragmafragmentfrag sampler2D_MainTex; sampler2D_MaskTex; fixed4_Color; float_Progress; structappdata { float4vertex:POSITION; float4texcoord:TEXCOORD0; }; structv2f {
5、float4pos:SV_POSITION; float2uv:TEXCOORD0; }; v2fvert(appdatav) { v2fo; o.pos=mul(UNITY_MATRIX_MVP,v.vertex); o.uv=v.texcoord.xy; returno; } half4frag(v2fi):COLOR {1234567891011
6、1213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 fixed4c=_Color*tex2D(_MainTex,i.uv); fixedca=tex2D(_MaskTex,i.uv).a; c.a*=ca>=_Progress?0:1; returnc; } ENDCG
7、 } } SubShader { AlphaTestLEqual[_Progress] Pass { SetTexture[_MaskTex]{combinetexture} SetTexture[_MainTex]{combinetexture,previous}
此文档下载收益归作者所有