Unity Text 透明

Unity Text透明化问题

Shader "UI/TextBlend"
{
    Properties
    {
        [HideInInspector]_MainTex ("Texture", 2D) = "white" {}
        [HideInInspector]_BlendTex("Blend Tex", 2D) = "white" {}
        _Color("Text Color", Color) = (1,1,1,1)
 
        _Width (" Width", Range(0, 4096)) = 0
        _Height (" Height", Range(0, 4096)) = 0

        _R ("Radius", Range(0, 6)) = 0.1
		_X ("OffsetX", Range(-1, 1)) = 0.5
		_Y ("OffsetY", Range(-1, 1)) = 0.5
		_ScaleX ("ScaleX", Range(0, 10)) = 1
		_ScaleY ("ScaleY", Range(0, 20)) = 1
		_ExpandLen ("_ExpandLen", Range(0, 100)) = 1
    }
    SubShader
    {
        // No culling or depth
     	Tags { 	"Queue"="Transparent" 
				"IgnoreProjector"="True" 
				"RenderType"="Transparent" 
		}

		Cull Off
		ZWrite Off
		Lighting Off
		Blend SrcAlpha OneMinusSrcAlpha
		

        Pass
        {
           
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float4 v : TEXCOORD1;
            };

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.v = v.vertex;
                o.uv = v.uv;
                return o;
            }

            sampler2D _MainTex;
            sampler2D _BlendTex;
            float4 _MainTex_TexelSize;
            fixed4 _Color;
        

            float _Width;
            float _Height;

      	    float _R;
			float _X;
			float _Y;
			float _ScaleX;
			float _ScaleY;
			float _ExpandLen;
        
            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 col = tex2D(_MainTex, i.uv);
                col.rgb = _Color.rgb;
               

               fixed newU = i.v.x / _Width;
               fixed newV = i.v.y / _Height;
               //fixed4 texColor = tex2D(_BlendTex, fixed2(newU + _flipX / 100, newV + _flipY / 100));
               //clip(texColor.a - 0.1);
               //fixed clipAlpha = texColor.a;
               //col.a = clipAlpha * col.a;

               	float x = (newU - _X) *_ScaleX;
				float y = (newV - _Y) *_ScaleY;
				float S = sqrt(x * x + y * y);
				float k = pow(2, S/_R * -4) * _ExpandLen;
				float clipAlpha = clamp(0, 1, k);
                col.a = clipAlpha * col.a;
                return col ;
            }
            ENDCG
        }
    }
}


效果:  
![效果图](https://img-blog.csdnimg.cn/d6e724bfff8a40a48d14225009d6a8d1.png#pic_center)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中的文本效果和UI VFX效果是用于增强游戏用户界面的视觉效果和用户体验的强大工具。它们可以使游戏界面更具吸引力和动态性,提高玩家的沉浸感和乐趣。 文本效果功能可以通过使用UnityText组件来实现。它允许开发者在游戏界面中显示格式化的文本,并可以应用各种效果来增强其可读性和吸引力。例如,可以添加一些特定的字体或梯度背景来使文本更加突出和吸引眼球。还可以使用颜色和透明度来调整文本的外观,使其与游戏界面的整体风格相匹配。此外,开发者还可以通过动画和特效来为文本添加更多的动态效果,例如淡入淡出、抖动等,从而使玩家对游戏中的事件和信息感兴趣。 除了文本效果,Unity还提供了UI VFX效果来增强游戏用户界面的视觉效果。UI VFX是指在游戏界面中添加各种视觉特效和动态效果,使其更加生动和引人注目。例如,可以通过使用粒子系统来创建漂浮的粒子效果,如烟雾、火焰和爆炸效果,来给游戏界面增加层次感和视觉冲击力。另外,还可以利用UI VFX效果来创建流光和光晕等光影效果,增加游戏场景的感官体验。通过运用这些视觉特效和动态效果,开发者可以在游戏用户界面中创造出令人难以忘怀的视觉效果,提升玩家的游戏体验和沉浸感。 总而言之,Unity的文本效果和UI VFX效果是游戏开发中重要的工具,它们可以使游戏界面更加生动有趣,提高玩家对游戏的吸引力和参与度。通过适当地应用文本效果和UI VFX效果,开发者可以为游戏用户界面创造出独特而引人注目的视觉效果,从而提升游戏的品质和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值