
Текстурная память — один из главных источников проблем с производительностью в мобильных Unity-проектах. Базовые принципы, которые стоит знать до того, как начнёт лагать.
Форматы изображений
PNG — для элементов с прозрачностью (кнопки, иконки). Без потерь качества, но занимает много места.
JPEG — для фонов без прозрачности. Сильное сжатие, но нет прозрачности и возможны артефакты.
ASTC — основной формат для мобильных (Android и iOS). Хороший баланс качества и размера, но не поддерживается на всех системах.
Оптимальные размеры
- Размер текстуры должен соответствовать отображаемым пикселям: элемент 100×50px → текстура 128×64px
- Размеры кратны 4 (оптимально — степени двойки: 32, 64, 128…)
- Адаптивные элементы: от 128×128 до 2048×2048
Настройки сжатия
Мобильные:
- Android: ETC2 (совместимость) или ASTC (рекомендуется)
- iOS: ASTC (обязательно для Metal)
Десктоп:
- Windows/Linux: DXT5 (с прозрачностью)
- Максимальное качество: BC7 (требует DirectX 11)
Чек-лист
- Объединяйте мелкие текстуры в атласы
- Отключайте Read/Write Enabled — если не меняете текстуры в коде
- Отключайте Mip Maps — для UI-элементов фиксированного размера
- Тестируйте на реальных устройствах
- Проверяйте в Unity Profiler и Frame Debugger
Полезные инструменты
- TinyPNG/TinyJPG — онлайн-сжатие
- Textures Hunter — поиск проблемных текстур в проекте
- IMG2ETC2 — автоматическая подгонка размера под ETC2
Источники: Unity Documentation (Texture formats, Recommended compression formats), Unity Blog (Optimize your mobile game performance), Android Documentation (Target texture compression formats)