PNG on iOS?

According to the editor log, my game is 99.8% textures. It is now almost 500MB. The source images are all PNG format, and clock in at under 45MB. How can I force Unity to use the PNGs as-is on iOS instead of bloating them to ridiculous sizes?

Using PVRTC compression is NOT the answer. Using 16-bit textures is NOT the answer either.

I realize that PVRTC is the native compression for iOS, but my game is a 2D game that needs to be pixel perfect. Compression makes the images completely unusable. Switching to 16-bit only cuts the file size in half, and so much color is lost that again, the images are unusable. My last game was made without Unity, just OpenGL. I know iOS has library functions to natively load a PNG to an OpenGL texture because I’VE USED IT. I’m not concerned with optimizing for performance here, I just want to get my game under the 50MB over-the-air download size limit to maximize downloads. My assets are WELL under 50MB (even with Unity’s dlls etc), this should not be a difficult task. I have Unity Pro with iOS Pro. How can this be accomplished? I’ve only found others with the same problem, but nobody with the answer. Surely this is just a hidden checkbox in Unity’s options somewhere, right? RIGHT? PLEASE?


See this page for the texture formats that are supported. PNG are not natively supported (even in Windows), they are always converted to a texture format that is recognized by the hardware (graphic cards do not treat PNG files).

So you need to decrease the size of your images and/or use atlasing to reduce the number of resources used at any time.

You can also take a look at Optimizing Performance in iOS.

Or do what @paulius-liekis suggested. But at runtime, you will still have 500 MB of textures in memory, which may crash your game.

Unity allows you loading PNGs using WWW class, so maybe you could load your PNG using WWW from local storate. Not most effective way, but should work.

I was struggling with this as well and just found image quality settings for Unity 4.6 under Edit->Project Settings->Quality.

More information can be found here: Unity - Manual: Quality