So, I had a huge problem for the past few weeks, when I build my project for Android 80% of the time I get black rects instead of the actual image textures, and that’s for any UI texture used, whether the image is a Sprite (UI)
, a Cursor
, a Logo
or an Icon
.
In Console there are frequent error messages about “Texture of width 1024 and height 1024 is not accessible.”,
This also happens for Editor Plugins/Packages, it seems that the editor can’t read the textures unless its Read/Write
, which I can’t change.
After a few hundred tests I solved this issue by setting the textures as Read/Write in order for this to work every time,
Also tried crunch compression on
/off
, and compressor quality 50
/100
,
Tried Graphics API Auto
/Vulkan
/OpenGLES3
,
Tried Texture Compression Formats ASTC
/ ETC2
/ ETC
/ ASTC,ETC2
/ ASTC,ETC2,ETC
The problem now is:
- Textures are not supposed to be
Read/Write
unless pixels manipulation is needed. - I read that it
doubles
the memory consumption.
Does anyone know how to fix this, or why this is happening?
And when exactly Read/Write
doubles the memory consumption, is it when you manipulate the the pixels or is it loaded twice from the start?
Unity Editor: 2023.1.3f1 / 23.1.2 / 23.1.1 / 21.3.x LTS
Android Device: Xiaomi Mi10T
GPU: Snapdragon 865 (supports GLES 3.2)