В Unity3D визуализируется только первая подсетка

Я пытаюсь создать всю свою сетку из 5 подсетей с помощью скрипта в Unity. Для каждой подсетки у меня есть отдельный массив индексов и назначенный материал. Любопытно, что 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;

Screenshot На скриншоте видно, что инспектор мешей говорит правильное количество подсетей. Также к рендереру прикреплено 5 материалов. В консоли я напечатал количество вершин, поэтому подсетка 3-5 в данный момент не владеет треугольниками, но это не должно быть проблемой, не так ли? По крайней мере, submesh 2 должен быть отрендерен...


person Vetterjack    schedule 16.12.2016    source источник
comment
Две вещи, которые я думаю проверить: (1) вы можете зарегистрировать subMeshCount просто для того, чтобы убедиться, что API Unity не сбрасывает его где-то, и (2) Unity заботится о том, по часовой стрелке или против часовой стрелки расположены ваши треугольники (объяснение).   -  person rutter    schedule 16.12.2016
comment
Спасибо за вашу помощь, после более глубокого изучения моего кода я обнаружил, что забыл break, который испортил индексы подсетей...   -  person Vetterjack    schedule 18.12.2016