Шейдер создает эффект glow для спрайта, фактически создавая копию текстуры, залитую выбранным цветом. Созданная копия помещается за исходным спрайтом, таким образом получается "подсветка" по контуру непрозрачной части текстуры. В редакторе работает отлично, но в билде под веб плеер шейдер как будто иначе читает альфа-канал и заливает всю область текстуры.
Выглядит в редакторе:
Выглядит в веб плеере:
Самая упоминаемая проблема с шейдерами в веб плеере - отсутствие файла шейдера в билде при использовании Shader.Find, но это точно не мой случай, шейдер в плеере работает. Хотя на всякий случай уже клал его в сериализуемое поле, ничего не изменилось.
Пасс в шейдере один.
Собака зарыта где-то здесь:
half4 frag (v2f i) : COLOR
{
float blurAmount = _Radius * 0.0275;
half4 sum;
float a=0;
for (float w = -4; w < 5; w ++)
{
for (float h = -4; h < 5; h ++)
{
float4 buv = float4(i.uv.x + w * blurAmount, i.uv.y + h * blurAmount, 0, 0);
half4 tex = tex2Dlod(_MainTex, buv) * (0.025 * (5 - abs(float(h)) + 1));
if (buv.x > 0 && buv.x < 1 && buv.y > 0 && buv.y < 1)
{
sum += tex;
a += tex.a / 4;
}
}
}
sum.rgb = lerp(_Color, _SecondColor, a);
sum.a=_Color.a * a * _Transparency;
return sum;
}
Спасибо уделившим внимание