I have come across this bug using 3D Text GameObjects. This is in Unity Pro version 4.3.0f4 with Dynamic Batching turned on. I was working in a scene with multiple 3D Text objects when I noticed that my Draw Call counts was getting exceptionally large, much larger than it should have been. it seems that 3D Text is not batching correctly once strings become too long.
Steps to reproduce:
Create a new screen with nothing but a camera and a 3D Text GameObject
Set the Text property to display a string with a length of 75 characters
Run the game. Notice the scene requires 1 draw call.
Duplicate the 3D Text gameObject. Notice the scene still only requires 1 draw call no matter how many times you duplicate.
Now here’s the interesting part:
Select one of the 3D Text objects and add a single character to it (bring its total up to 76). Notice the scene now requires 2 draw calls.
Add more characters to the string. Notice the draw calls stay at 2.
Now, add 76th character to another 3D Text object, or duplicate an existing one of 76 or more characters. Notice that the draw calls increases to 3.
Keep editing or duplicating other strings and notice that the draw calls increases by 1 each time.
Now for another interesting part:
Stop play to reset the scene, and hit play again. Back to one string of 75 characters, and 1 draw call.
Add characters to the end of this string, taking it beyond 75. Notice the draw calls stay at 1 and WILL NOT INCREASE even though you are above 75 characters!
Duplicate the 3D Text object, notice the draw calls increase by 1 for each duplication.
You can now delete characters from these objects to bring them back to 75 and the draw count will start to decrease.
So in summary:
Unity seems to batch a 3D Text object into a single draw call as long as:
a) It is one single object or any length, or
b) the scene is comprised of multiple objects each below 75 characters
In a scene with multiple objects, in a string with a character count greater than 75, the extra characters will require their own draw call. These extra characters are not batched together with excess characters of other strings, rather each string now requires an extra draw call once it exceeds 75 characters.
I assume this is what is happening: