我尝试为Unity的滑块填充重新着色,以使其显示具有不同颜色的劳动力组成的子组。不幸的是,比率没有正确显示,或者根本无法改变颜色。
使用常量值,比率通常是错误的,尝试使用我的float数组,颜色通常甚至都不会改变。
uint _SegmentsSize = 0;
float _Segments[1000];
uint current = 0;
fixed4 frag(v2f IN) : SV_Target
{
current = 0;
for (int i = 0; i < _SegmentsSize; i++)
{
if (IN.texcoord.x > _Segments[i]) {
current = i+1;
}
}
fixed4 co = fixed4((current) % 3 == 0 ? 1 : 0, (current + 1) % 3 == 0 ? 1 : 0, (current + 2) % 3 == 0 ? 1 : 0, 1);
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color* co;
#ifdef UNITY_UI_CLIP_RECT
color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
#endif
#ifdef UNITY_UI_ALPHACLIP
clip(color.a - 0.001);
#endif
return color;
}
在C#一侧(垫子是一种材料)
mat.SetInt("current", segments.Length);
mat.SetFloatArray("_Segments", segments);