Я сделал шейдер для работы с контурами, но когда я помещаю его в компонент (например, куб), шейдер меняет все компоненты. Я просто хочу изменить контур, а шейдер - весь цвет на черный.
Вот код:
Shader "Unlit/GlowShader"
{
Properties
{
_Color("Main Color", Color) = (0,0,0,0)
//_MainTex ("Texture", 2D) = "white" {}
_OutlineColor("Outline color", Color) = (0,0,0,1)
_OutlineWidth("Outline Width", Range(1.0,5.0)) = 1.01
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : POSITION;
float3 normal : NORMAL;
};
float _OutlineWidth;
float4 _OutlineColor;
v2f vert(appdata v)
{
v.vertex.xyz *= _OutlineWidth;
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
return o;
}
ENDCG
SubShader
{
Tags{"Queue" = "3000"}
Pass //Render the Outline
{
ZWrite Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
half4 frag(v2f i) : COLOR
{
return _OutlineColor;
}
ENDCG
}
Pass //Normal render
{
ZWrite On
Material
{
Diffuse[_Color]
Ambient[_Color]
}
Lighting On
SetTexture[_MainText]
{
ConstantColor[_Color]
}
SetTexture[_MainText]
{
Combine previous * primary DOUBLE
}
}
}
}