I have only one big texture(1024x1024) with Diffuse material, without any scripts, and my frame rate is 19. When I am trying to add on scene 2-3 other texture(some of them with alpha chanel, and iPhone/transparent/vertex color shader on material) frame rate drops to 10. Dont know how to fix this. Sure it drops only on iPad, on Mac it works perfect.
P.S. Frame rate drops only on Unity 3.0, on Unity iPhone 1.7 it works great.
The problem is most likely OpenGL ES 2 shaders being used. Build only for arm6 archiecture in xcode, or in your player settings, turn OFF OpenGL ES 2.0 compliant shaders. Unless you're quite the shader nerd, you're better off avoiding opengl 2.0 :)
I've found that for backgrounds, rather than using one large sprite it's more efficient to use a single GUITexture. Changing my background sprite to a GUITexture increased my frame rate from double digets to triple digets.
i struggled with this also, until i found this post! http://answers.unity3d.com/questions/9729/how-can-i-display-a-flat-background-2d-image-not-a.html
do this instead when setting up a static background image it will not effect the framerate and give you perfect background … just make sure you follow the final step after the green block (set all the pixel inset values to 0, and set the scale to (1, 1, 1) ) to make sure it fits full screen.
Had a similar problem where using a 1 poly plane as a full screen background… It used to be 512x512 mobile diffuse shader, i even dumbed it down 256 even, and still getting 30fps (aiming for 60fps).
Changed the shader to Mobile/Unlit and it cranked up to 55 FPS…
My guess is that the bigger the object takes up screen space… the more PIXEL LIGHTING CALCULATION takes place (diffuse takes lighting). So im calculating full screen size pixels for my plane… one poly or not one poly…
According to that theory, that would mean if that 1 poly plane took up less screen space… then it would work nice…
But having it display full screen, best be an mobile/UNLIT shader…