我想为每行(元素)更改颜色,就像在颜色切换中一样。但是我的代码无法正常工作。我的代码有什么问题?
void Start()
{
lineGeneratorPrefab = new GameObject();
DrawLine();
}
private void DrawLine()
{
GameObject myLine = new GameObject();
myLine.transform.position = start;
myLine.AddComponent<LineRenderer>();
LineRenderer lr = myLine.GetComponent<LineRenderer>();
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.materials[2].color = Color.blue;
lr.materials[3].color = Color.red;
}
答案 0 :(得分:0)
看看here。
您可以通过colorGradient
属性来更改线条渲染器的渐变,而不是改变各种材质。
因此,您可以添加以下内容:
gradient.SetKeys(
new GradientColorKey[] {
new GradientColorKey(Color.red,0.0f),
new GradientColorKey(Color.red, 0.25f),
new GradientColorKey(Color.blue, 0.5f),
new GradientColorKey(Color.blue, 1.0f)},
// Alpha key
);
如果要进行更突然的过渡,可以在例如0.49和0.51处添加颜色键。