Mesh.CombineMeshes flips normals

I am trying to use the following example script to combine small parts of a mesh into one, so I am able to make a dynamic terrain:

The problem is that it flips the normals of some of the meshes. How come and how to solve this?

The following image shows that the normals of the edges of my model are flipped, while some of the edges are still ok. These blocks all exist out of a center plane, corners and edges.


What it should be:


private static void CombineMesh(GameObject iceBerg)
    MeshFilter[] meshes = iceBerg.GetComponentsInChildren<MeshFilter>();

    CombineInstance[] combine = new CombineInstance[meshes.Length];
    for (int i = 0; i < meshes.Length; i++)
        combine_.mesh = meshes*.sharedMesh;*_

combine_.transform = meshes*.transform.localToWorldMatrix;_ = false;
MeshFilter meshFilter = iceBerg.AddComponent();
meshFilter.mesh = new Mesh();
MeshRenderer renderer = iceBerg.AddComponent();
renderer.material = (Material)Resources.Load(“Materials/GridIce”);
MeshCollider col = iceBerg.AddComponent();
col.smoothSphereCollisions = true;


I have found the problem! It is a bug in Unity and I will probably contact them about it.

The objects that are flipped in my scene are flipped because of a negative scale that I use to reuse the model multiple times. I avoided this by making a mirrored version of the object in Blender.

Any news about any fix?
Anybody can help me to insert a check inverted scale on game object and its parent to have correct normals on triangle strip?

Please contact me becausa I have thousand combined geometry and it not possible mirror them!