Единство |mesh.colors не будет окрашивать мой пользовательский объект сетки - PullRequest
0 голосов
/ 16 апреля 2019

Я построил пользовательскую пирамиду в Unity, как это:

    Mesh mesh = GetComponent<MeshFilter>().mesh;
    mesh.Clear();
    Vector3[] vertices = {
        new Vector3(0.0f, 0.5f, 0.0f),
        new Vector3(0.5f, 0.0f, 0.5f),
        new Vector3(-0.5f, 0.0f, 0.5f),
        new Vector3(-0.5f, 0.0f, -0.5f),
        new Vector3(0.5f, 0.0f, -0.5f),
    };

    int[] triangles = {
        1, 2, 3,
        1, 3, 4,
        1, 0, 2,
        2, 0, 3,
        3, 0, 4,
        4, 0, 1
    };


    mesh.vertices = vertices;
    mesh.triangles = triangles;

Я пытаюсь раскрасить свою пирамиду, как сказано в документации по единству, как это:

    Color[] colors = new Color[vertices.Length];

    for (int i = 0; i < vertices.Length; i++)
        colors[i] = Color.Lerp(Color.red, Color.green, vertices[i].y);

    // assign the array of colors to the Mesh.
    mesh.colors = colors;

, но этоне изменит ничего ..

У меня нет материалов по моему объекту, только этот сценарий.Есть идеи?

1 Ответ

1 голос
/ 16 апреля 2019

Обратите внимание, что комментарий в mesh.colors

// (Обратите внимание, что большинство встроенных шейдеров не отображают цвета вершин. Используйте тот, который отображается, например,Particle Shader, чтобы увидеть цвета вершин)

, чтобы увидеть эти цвета в компоненте MeshRenderer, добавьте материал, который использует такой вершинный или Particle Shader.

Следовательно

  1. в представлении Project (Активы) выполните щелчок правой кнопкой мыши CreateMaterial

enter image description here

Дайте этому материалу имя Для Shader в раскрывающемся меню найдите и выберите, например, ParticlesStandard Unlit (или, если вы хотите получить молнию Standard Surface)

enter image description here

Наконец, используйте этот материал для своего объекта, либо перетащив его в MeshRenderermaterial, либо просто перетащив его на соответствующий объект в представлении Scene (последний может не работать, если нет сетки дляэтого объекта пока нет)

Результат:

enter image description here

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