Big problem with Texture2D, I'm stuck!

Hi everyone!
I hope this is the right sub-forum for this question, if not please feel free to advise me.

So I’m building this tablet APP which has loads of fullsize images to be displayed as part of game. I need to access the alpha channel in order to use them in the game.

My problem is that I have more than 60 images and each weights 4mb… which quickly amounts to a huge app size. Unity says that to use GetPixels and ReadPixels I need to use a format like RGBA32, so I cant use other compression formats (worked fine if I didnt need to read pixels).

Is there a way I can go around this problem?
I was planning to have a Teture2D in memory to do this, and load the compressed/simpler textures only when I needed them, but then loading to memory also needs GetPixel, so I’m back to square one.

help!

Not sure whether this works at all, currently not at a machine to test. Although, when selecting your texture in the editor, there is a texture type. Can you change that to advanced at all? If so, there should be a read/write tick box, whether that allows compressed textures to be read from memory with an alpha channel…?

Thats the problem exactly! I am using advanced textures so that I can read/write. But it doesnt allow me to use compressed textures, only RGBA32 and such…

Texture read/write, getpixel and setpixel can be expensive and not performance friendly (well, it’s the Apply() that does all the work), and since you are targeting mobile, performance is key.
Come up with a different approach to your needs that don’t use them.
eg have seperate alpha images, that you can save in smaller formats.

I’ll always need to use getpixel in order to know if the user is touching a transparent area or not. I guess creating seperate alpha images could be a way… although very a very long one! (60+ files and growing). thanks for the tip

Batch it in Photoshop. You don’t need the same resolution of image for the visual and the “touch” detection.
If you image is 10241024, your “touch” grayscale only need to be 128128 or something like that.