pet*_*ann 2 user-interface unity-game-engine
是否可以在Unity中创建一个像这样的栏?
默认组件似乎只是原始的.我可以有一个矩形作为条形或径向条.
这个螺旋条需要访问路径,因为颜色必须知道如何沿着精灵移动.
我会使用一个自定义着色器,其中包含一个包含"填充信息"的精灵作为alpha通道.
在下图中,您将看到您的原始精灵,另一个带有渐变alpha(抱歉,我不是Photoshop的专家).
您可以在他们的网站上下载Unity着色器,并在DefaultResourcesExtra/UI中选择UI-Default.shader并稍微调整一下,以便根据精灵的alpha值填充精灵.
像这样的东西(未经测试)
Shader "UI/FillAlpha"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_FillAmount ("Fill amount", Float) = 1
// ...
}
SubShader
{
// ...
sampler2D _MainTex;
fixed _FillAmount;
fixed4 frag(v2f IN) : SV_Target
{
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
color.a = color.a > _FillAmount ? 1 : 0 ;
color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
// ...
return color;
}
ENDCG
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您将能够使用更改FillAmount参数myMaterial.SetFloat
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |