There is a problem about set mirror flip to skinned mesh. When I set scale = -1 (the code: myTransform.localScale = new Vector3(-1,1,1)) to a skinned mesh, the mesh is mirrored and this flip is OK in most of its animations. However, in a few frames of animations, the mesh has a problem. Everything is wrong: the texture of the mesh is turned over, the light is wrong. I think the normals are reversed.
Why only a few frames have the reversed normal problem, and is there a solution to fix it? The environment is Maya2011 and Unity3.4. I have tried both .fbx and .mb file, both have the problem.
I know this is a really late answer, but while I was having this same problem, I’ve found little to no answers to why this was happening. What I found out was that when a Mesh is flipped on a single axis by a negative scale, the winding should have flipped but this was not the case. What I found out was that the mesh does go inside out, but Unity tries to correct this and calculate the new winding order. In a static mesh it would perform admirably but in an animated mesh, certain keyframes would cause the mesh to do what you see there. I thought it was something in the animation keyframes causing this but after checking over everything several times over, finally found out what Unity was doing. We finally fixed this by instead of using the scale to flip a animated, we flipped the skinned mesh in code and flipped the winding order of all the triangles to turn the mesh back right side out.
Flipping object is a bad practice.
Whenever possible, try to combine rotation and reverse animation (reading keyframe in reverse order). Or create an animation for every cases.
The reason is that normals and binormals are not flipped. For that reason, the faces of your mesh are broken (some might be flipped, some not).