Unity3D only first submeshed is rendered

1.1k Views Asked by At

I am trying to create my whole mesh from 5 submeshes via script in Unity. For each submesh I've got a separated indice array and material assigned. Curiously Unity only renders the first submesh, but if I inspect the mesh assigned to the mesh filter it says that there are more vertices and triangle than actually are rendered.

    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;

Screenshot At the screenshot you can see, that the mesh inspector says the correct count of submeshes. There are also 5 materials attached to the renderer. At the console I've printed the count of vertices, so submesh 3-5 doesn't own triangles at the moment, but this shouldn't be a problem, should it? At least submesh 2 should be rendered...

0

There are 0 best solutions below