根据Unity3D中的渐变创建渐变并更改颜色 - C#Script

时间:2016-07-28 17:01:33

标签: c# unity3d colors gradient

我希望能够使用C#脚本创建一个颜色渐变条,如下所示:enter image description here

然后我想说如果我的数字在范围内(0.8 - 1.0),那么我的对象就会显示渐变中显示的红色阴影。

我不确定如何处理这个问题。现在我只有2种纯色。我有:

myGameObject.GameComponent<Renderer>().material.color = Color.red;

表示正值,蓝色表示负值。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

Unity's Gradient class。您可以创建GradientColorKey[]GradientAlphaKey的列表,并设置每个颜色/时间值。为了您的目的,我会使用:

    Gradient g = new Gradient();
    GradientColorKey[] gck = new GradientColorKey[2];
    GradientAlphaKey[] gak = new GradientAlphaKey[2];
    gck[0].color = Color.red;
    gck[0].time = 1.0F;
    gck[1].color = Color.blue;
    gck[1].time = -1.0F;
    gak[0].alpha = 0.0F;
    gak[0].time = 1.0F;
    gak[1].alpha = 0.0F;
    gak[1].time = -1.0F;
    g.SetKeys(gck, gak);
    myGameObject.GameComponent<Renderer>().material.color = g.Evaluate(1);

这会获得与Color中的数字相对应的g.Evaluate(),因此您应该将g.Evaluate(1)中的时间参数更改为变量或任何您想要的变量。如果您获得透明或黑色纹理,请尝试更改alpha中的gak值。希望这有用:)

相关问题