简体   繁体   English

颜色渐变如何工作?

[英]How does color gradient works?

I'm trying to implement below picture in my code but it doesn't work. 我正在尝试在我的代码中实现下面的图片,但是它不起作用。 It only shows red color on all sides. 它仅在所有侧面显示红色。 I'm using line renderer and color gradient. 我正在使用线渲染器和颜色渐变。

在此处输入图片说明

 void Start()
{
    lineGeneratorPrefab = new GameObject();

    DrawLine();
}




private void DrawLine()
{
    GameObject myLine = new GameObject();
    myLine.transform.position = start;
    myLine.AddComponent<LineRenderer>();
    lr = myLine.GetComponent<LineRenderer>();
    lr.material = new Material(Shader.Find("Sprites/Default"));     
    lr.positionCount = 4;
    lr.SetPosition(0, new Vector3(-2, 0, 0));
    lr.SetPosition(1, new Vector3(2, 0, 0));
    lr.SetPosition(2, new Vector3(2, -2, 0));
    lr.SetPosition(3, new Vector3(-2, -2, 0));
    lr.loop = true;


    Gradient gradient = new Gradient();
    gradient.SetKeys(
        new GradientColorKey[]
        {
            new GradientColorKey(Color.red, 0.25f),
            new GradientColorKey(Color.blue, 0.25f),
            new GradientColorKey(Color.green, 0.25f),
            new GradientColorKey(Color.yellow, 0.25f)
        },
            new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f) }
        );
    lr.colorGradient = gradient;

}

The 2nd parameter of GradientColorKey is the index between [0,1], GradientColorKey的第二个参数是[0,1]之间的索引,

so you may modify the GradientColorKey array like: 因此您可以像这样修改GradientColorKey数组:

new GradientColorKey[]
    {
        new GradientColorKey(Color.red, 0.00f),
        new GradientColorKey(Color.red, 0.24f),
        new GradientColorKey(Color.blue, 0.25f),
        new GradientColorKey(Color.blue, 0.49f),
        new GradientColorKey(Color.green, 0.50f),
        new GradientColorKey(Color.green, 0.74f),
        new GradientColorKey(Color.yellow, 0.75f),
        new GradientColorKey(Color.yellow, 1.00f)
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM