Изменение цвета для каждого элемента в linerenderer не работает - PullRequest
0 голосов
/ 18 марта 2019

Я хочу изменить цвет для каждой линии (элемента) так же, как в переключателе цвета.Но мой код не работает.Что не так с моим кодом?

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;
}

1 Ответ

0 голосов
/ 18 марта 2019

Взгляните здесь .

Вместо того, чтобы изменять различные материалы, вы могли бы вместо этого изменить градиент средства визуализации линий через свойство 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...