gpt4 book ai didi

unity3d - 团结 | mesh.colors 不会为我的自定义网格对象着色

转载 作者:行者123 更新时间:2023-12-03 20:28:28 30 4
gpt4 key购买 nike

我在 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;

但这不会改变任何事情..

我的对象上没有 Material ,只有这个脚本。
有任何想法吗?

最佳答案

请注意 mesh.colors 中的评论

// (Note that most built-in Shaders don't display vertex colors. Use one that does, such as a Particle Shader, to see vertex colors)



所以为了在 MeshRenderer中看到那些颜色组件添加使用此类顶点或粒子着色器的 Material 。

所以
  • Project查看( Assets )右键单击→ CreateMaterial
    enter image description here
  • 为该 Material 命名
  • 对于 Shader从下拉菜单中找到并选择例如ParticlesStandard Unlit (或者如果你想收到闪电 Standard Surface )

    enter image description here
  • 最后将此 Material 用于您的对象,方法是将其拖入 MeshRenderermaterial或者简单地将其拖到 Scene 中的相应对象上 View (如果该对象还没有网格,后者可能不起作用)


  • 结果:

    enter image description here

    关于unity3d - 团结 | mesh.colors 不会为我的自定义网格对象着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55713842/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com