StaticBatchingUtility.Combine() broken on iOS

I use StaticBatchingUtility.Combine() to combine meshes right after a scene is loaded to reduce draw calls. I use it at runtime rather than build time (through the player settings static batching check box) to save on build size.

In Unity 3.5.7 this worked fine on all devices. I just upgraded to Unity 4.2.1 and it works fine in the editor on Mac and PC but when I build to iOS all the meshes under the combine root simply don’t render.

This is a big issue as the increase in draw calls is going to kill my performance.

Has anyone got a workaround? Is this being fixed?

Bump. Seriously. This needs fixing.

What was the case number you got when you submitted this bug? I looked for it using your forum email address, but didn’t find it. (If you’ve not yet sent in a bug report, please send a trivial reproducible so our QA and dev teams see what you see.)

Sigh… ok, I’ll try get onto that shortly.

So I fingured out how to reproduce this. Turns out to be really obscure.

The bug happens when you do all of these things:

  • Model has Mesh Compression on.
  • Model has normal import set to off.
  • A shader on the Renderer has a normal bind.
  • The asset is placed under an object that gets Statically batched with the StaticBatchUtility at runtime on iOS.

I submit the bug through the Unity bug reporter. Case 565183.