Quick answer: Default textures are uncompressed RGBA32. Override per platform with BC7 (desktop), ASTC 6x6 (mobile), or ETC2 (WebGL). Cap Max Size to 2048 unless you specifically need higher.
Here is how to fix Unity builds that ship at 2–5 GB when the actual content is 200 MB. The bulk is uncompressed textures. Per-platform compression cuts texture size by 4–8x with minimal visual loss.
The Symptom
Build inspector or Editor.log (after build) shows textures consuming most of the package. A single 2k texture takes 16 MB. Hundreds of textures explode the build.
What Causes This
Default RGBA32 format. Imported textures land at full uncompressed precision unless you opt into compression.
Per-platform Override missing. Without override, the default applies; mobile platforms ship desktop-sized textures.
Max Size too high. Importing 4k assets and shipping at 4k regardless of need.
The Fix
Step 1: Enable per-platform Override. Select the texture. In Importer, expand the platform tab (Default, Standalone, Android, iOS, WebGL). Check Override for the platforms you target. Set Format and Max Size per platform.
Step 2: Choose compression by platform.
Desktop / Standalone: BC7 (RGBA, high quality) or BC1 (opaque, smaller)
Android (modern): ASTC 6x6 (standard) or ASTC 4x4 (high quality)
iOS: ASTC 6x6 (or 4x4 for hero art)
WebGL: ETC2 RGBA8 or ASTC if supported
Step 3: Cap Max Size. Most game textures look fine at 1024 or 2048. Cap higher only when needed (skybox, hero art).
Step 4: Bulk-update via editor script.
[UnityEditor.MenuItem("Tools/Compress Textures")]
static void Compress()
{
var guids = AssetDatabase.FindAssets("t:Texture2D", new[] { "Assets/Art" });
foreach (var g in guids)
{
var path = AssetDatabase.GUIDToAssetPath(g);
var ti = (TextureImporter)AssetImporter.GetAtPath(path);
var ps = ti.GetPlatformTextureSettings("Android");
ps.overridden = true;
ps.format = TextureImporterFormat.ASTC_6x6;
ps.maxTextureSize = 2048;
ti.SetPlatformTextureSettings(ps);
ti.SaveAndReimport();
}
}
Step 5: Audit with Build Report. After build, open Editor.log. Search for “Textures” section. Sort by size; address the largest first.
Crunch Compression
For AssetBundles or WebGL where download size matters, enable Crunch on top of platform compression. Adds CPU cost on load but reduces transfer ~30–50% further.
“Per-platform override. Right format. Sensible Max Size. Build size halves or quarters.”
Related Issues
For AssetBundle name updates, see AssetBundle Name. For shader stripping, see AssetBundle Shader Stripping.
Override per platform. ASTC mobile, BC7 desktop. Max 2048. Sane build size.