我试图通过Unity中的脚本从5个子网格创建我的整个网格。对于每个子网格,我都有一个分离的indice数组和指定的材质。奇怪的是,Unity只渲染第一个子网格,但如果我检查分配给网格过滤器的网格,它会说有更多的顶点和三角形比实际渲染的更多。
GameObject go = new GameObject("Island Prototype");
Mesh mesh = new Mesh();
mesh.vertices = this.vertices.ToArray();
mesh.subMeshCount = this.indices.Count;
int c = 0;
foreach (List<int> l in this.indices)
{
Debug.Log(l.Count);
mesh.SetTriangles(l.ToArray(), c);
c++;
}
mesh.RecalculateNormals();
List<Material> materials = new List<Material>();
materials.Add(fieldMaterial);
foreach (TileSettings ts in tiles)
{
materials.Add(fieldMaterial);
}
Debug.Log("Number of materials: " + materials.Count);
//mesh.RecalculateBounds();
//mesh.RecalculateNormals();
MeshRenderer mr = go.AddComponent<MeshRenderer>();
mr.sharedMaterials = materials.ToArray();
MeshFilter mf = go.AddComponent<MeshFilter>();
mf.mesh = mesh;
在屏幕截图中,您可以看到网格检查器显示正确的子网格数。渲染器还附有5种材料。 在控制台上我打印了顶点的数量,所以子网格3-5目前还没有三角形,但这不应该是一个问题,不是吗?至少应该渲染子网格2 ......