Скрытый текст:
Как видно, у желтой заливки слева всё гладко.
Это стандартное отображение UI.Image;
Затем я делаю в своем шейдере так:
Синтаксис:
Используется csharp
....
_FillAmount ("Fill Amount", range(0,1)) = 1
....
....
fixed4 frag(v2f IN) : SV_Target
{
half4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
c.a = c.a * floor(_FillAmount / IN.texcoord.x);
clip (c.a - 0.01);
return c;
}
_FillAmount ("Fill Amount", range(0,1)) = 1
....
....
fixed4 frag(v2f IN) : SV_Target
{
half4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
c.a = c.a * floor(_FillAmount / IN.texcoord.x);
clip (c.a - 0.01);
return c;
}
_FillAmount задается в параметрах шейдера.
И получается уже нижняя картинка.
Почему так получается, ведь floor в моем случае возвращает 0 или 1.
Пока обошелся таким решением:
Синтаксис:
Используется csharp
fixed4 frag(v2f IN) : SV_Target
{
half4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
// c.a = c.a * floor(_FillAmount / IN.texcoord.x);
if(_FillAmount/IN.texcoord.x > 1)
c.a = c.a;
else
c.a = 0;
clip (c.a - 0.01);
return c;
}