Before I hear “duhhh, did you flip the normals dude”, I have done Ctrl+N in Blender on my mesh, I have recreated the mesh, modified the mesh, recalculated outside, recalculated inside, flipped both to see if it worked, and none of that worked as it should. I can only partially make the mesh work and it is making me really frustrated.
Observe in Unity:
See how some parts overlap as if they were put in the back?
Meanwhile, in Blender it looks like this:
The best I can do is flipping the whole mesh so that everything shows correctly inside. But if I flip that again or recalculate that again it still does this.
Please help me, it is driving me nuts. I hope it is an easy solution to this.
Calculate/flip the normal will not always work if you have a open mesh. You can inspect the normal of each faces in Blender using this:
Edit-Mode → N (to open the tool on the right) → look for mesh-display settings → Turn on display normals for faces → set size to a reasonable number
You can then check the normal of each face, if the normal is not right, just flip the normal for that particular face only by highlighting that face then flip/recalculate it.
When you export to .fbx or .obj, make sure that you have selected Write/Include normals (I am not sure about other format though). Then, when you import to Unity, do not use Calculate normal, just use import normal.
Hopes that this will help you. If it doesn’t, then it will be a shader problem as what @benproductions1 had suspected.