textures become invisible as player moves

I am developing a 2d game in unity for the iphone.

Basically there is an imported object with multiple planes over each other with each having a different texture. My problem is that when the player moves foward (the texture represents the ground scenery below the player and the camera view is from the top towards the ground), a texture becomes invisible, like the houses in the scenery become invisible and the ground below them shows.

The planes are spaced above and below each other and not in the same z which would cause problems.

Also, adding the ground plane decreases the fps drastically.

Assuming your various layers use Transparent or Particle shaders, your problem is the automated z-sorting for transparent objects. You can fix this if you add scripts to your layered objects that modify the material.renderQueue. So for the floor you’d leave the material.renderQueue unchanged, for the next layer you’d add +1 to it, and so on.

Another approach is, if your layers don’t use semi-transparent pixels and only use fully opaque and fully transparent pixels, use the “Cutout” shaders instead of the “Transparent” ones.

The drop in fps is on iOS, or also in the Editor? I knwo that at least the iPad 1 and probably iPhones have severe bottlenecks in pixel fill rate, i.e., rendering several large planes/objects on top of each other. Not sure how much this has improved with iPad 2/3