Unity 2019-着色器图-如何在UIImage中重新创建填充函数

问题描述 投票:0回答:2

我正在尝试创建一个会在Y轴上耗尽的圆形健康栏。在具有图像类型填充和填充方法的普通图像上,此方法效果很好-垂直,但我希望对纹理进行动画处理。

我设法创建了一个对纹理进行动画处理的着色器,但是我无法弄清楚如何复制fill方法。我尝试使用Alpha切割阈值,但这不是所需的行为。有关如何执行此操作的任何想法?

enter image description here

注:我在Gamedev.stackexchange上问了这个问题,但似乎没有太多成员可以提供帮助。

unity3d user-interface animation shader shader-graph
2个回答
0
投票

您可以使用矩形并修改其UV以获得所需的效果。

示例:enter image description here


-1
投票

用于alpha测试的基本方法是clip,如果输入值小于0,则会丢弃像素。因此,通常我们通过输入alpha通道减去阈值来裁剪像素。

https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-clip

因此,在您的情况下,您需要以某种方式调节您的alpha值,使其低于阈值(0.6f)。例如,将其乘以纹理坐标的垂直轴减去填充值即可。详细信息取决于您想要的外观,请进行实验:)

© www.soinside.com 2019 - 2024. All rights reserved.