Now what irritates me is that the source png files are just 350kb each. How can this explode to 13MB for each image?? MaxSize is the default 2048 etc but the image is not a power of two. But anyway, I cannot understand how a file in the build can become bigger than the original and especially like 37 times.
png file has lossless compression, gpu formats do not use the same method of compression, you either put textures in an atlas that is power of two so you can compress them with the wide adopted formats or you use ASTC compression on mobile (still not 100% supported though) that has no size requirement
Edit: essentially your textures are being imported as RGB raw that’s why they become so huge.
But what’s a useful workflow, then?
Let’s say there are 500 images that accumulate while developing a project. Then, when I’m ready to use some software to put all those into spritesheets, all the references in Unity would be gone and it would definately not be easy to create them from atlas/spritesheet files.
you should use Unity Atlas system, this is something you need to get experience with.
You want to put textures together in an atlas that you know for certain will be used at the same time.
If you use a texture inside an atlas, the whole atlas will be referenced.
A quick fix would be to set the non power of two resizing under the texture importer settings, you can either increase or reduce the import resolution to a power of 2 and then the texture will be compressed, but this is more of a workaround than a fix.
This is also not supported for sprites, you can still use textures this way for UI with the RawImage component.
That’s the funny thing. I’m not talking about textures but about sprites/images. And I’m pretty sure it’s not supposed to be a normal workflow to instead of using Image or SpriteRenderer use RawImage. I still don’t get it. What do I do with Sprites and Images?
Sprites don’t have non power of 2 resizing to allow for texture compression, so you either put them in an atlas or keep them as textures and use RawImage instead of Image component (only if working with UI, sprite renderers will still need a sprite)
If you want a normal workflow you put stuff into an Atlas, there is no way around that, and to do that there is a built-in solution