参考了网上各个text渐变色的代码,但大多数是由上而下的渐变,我就思索了大概思路,也简单的,改成从左到右,基本思路不变,可以改
[AddComponentMenu(“UI/Effects/Gradient”)]
public class TextUIPro : BaseMeshEffect
{
[SerializeField] Color32 rightColor = Color.white;
[SerializeField] Color32 centerColor = Color.white;
[SerializeField] Color32 leftColor = Color.black;
public override void ModifyMesh(VertexHelper vh)
{
if (vh.currentVertCount <= 0) return;
for (int i = 0; i < vh.currentVertCount; i++)
{
SetColor(ref vh, i, centerColor);
}
SetColor(ref vh, 0, leftColor);
SetColor(ref vh, 3, leftColor);
SetColor(ref vh, vh.currentVertCount - 2, rightColor);
SetColor(ref vh, vh.currentVertCount - 3, rightColor);
}
public void SetColor(ref VertexHelper vh,int i,Color color)
{
UIVertex v = new UIVertex();
vh.PopulateUIVertex(ref v, i);
v.color = color;
// Color32.Lerp(bottomColor, topColor, (v.position.y - bottomY) / uiElementHeight);
vh.SetUIVertex(v, i);
}
}