我试图在我的代码中实现下面的图片,但它不起作用。它只在所有的边上显示红色。我使用的是线渲染器和颜色渐变。

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;
}发布于 2019-03-19 11:45:01
GradientColorKey的第二个参数是0,1,
因此您可以修改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)
}https://stackoverflow.com/questions/55230857
复制相似问题