https://github.com/rimurudev/unity_webgl_build_size_only_draft
https://github.com/rimurudev/unity_webgl_build_size_only_draft
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rimurudev/unity_webgl_build_size_only_draft
- Owner: RimuruDev
- Created: 2024-12-27T11:54:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-27T12:18:23.000Z (over 1 year ago)
- Last Synced: 2025-05-24T06:37:23.988Z (about 1 year ago)
- Size: 1.56 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Настройки проекта
### * Вкратце и поверхностно, на коленке написано :3 Обязательно пройдись по всем ссылкам — в каждой есть информация, которая может помочь именно в твоём кейсе.
### Специальные зарезервированные папки проекта Unity
У Unity есть много специальных зарезервированных папок, две из них напрямую могут влиять на размер сборки.
Что бы ни лежало в папках StreamingAssets и Resources, оно попадёт в билд. Поэтому:
- [ ] Папка **StreamingAssets** (если есть) — нужно убрать из неё всё лишнее.
- [ ] Папки **Resources** (если есть) — нужно убрать из них всё лишнее.
### Ограничение размера спрайтов и текстур в редакторе
- [ ] Ограничить все ресурсы проекта, включая readonly плагины, до 512х512 или 1024х1024.

### Build Settings
- [ ] Режим упаковки кода (Code Optimization) ставь **Disk Size** или **Disk Size LTO**.

- [ ] Удали лишние или неиспользуемые сцены из **Scenes in Build**, так как они добавляются в билд.

- [ ] В **IL2Cpp Code Generation** выбери режим **Faster (smaller) builds**.

- [ ] Протестируй режим GZip для своего проекта. Если размер сборки уменьшился, оставь его, если увеличился — выбери Brotli. Это зависит от проекта.

- [ ] Удаление или отключение лишних пакетов значительно уменьшит вес игры.

- [ ] В папке **Packages** есть файл `manifest.json`. Удали из него лишние строки.
Вот пример, выделенные строки можно удалить. Однако это только пример — нужно удалить вообще всё лишнее.

- [ ] Для релизной сборки или минимального размера рекомендуется собирать проект как clean build, пример ниже.

---
## Assets (Ассеты)
### **Audio**
Для WebGL параметр **Load Type** должен быть установлен на **Decompression On Load**, иначе работа на WebGL не гарантируется. Остальные настройки на твоё усмотрение. Видео ниже покажет, как именно можно оптимизировать аудио.
- [ ] Вот пример оптимизации аудио [ссылка](https://www.youtube.com/watch?v=r19FVjZYMAM)
### **Sprites**
Важно, чтобы все изображения:
- [ ] Оптимизировались через атласы и правильные настройки. Пример [видео](https://youtu.be/ex9Ie8KcIEM).
- [ ] Видео на YouTube от Яковлева, часть 1 [ссылка](https://www.youtube.com/watch?v=uJaMrKX0DZg).
- [ ] Видео на YouTube от Яковлева, часть 2 [ссылка](https://www.youtube.com/watch?v=3DBufWKuHeo).
### **Fonts**
Если используешь **TMP Pro**, можно удалить все лишние шрифты из папок плагина, включая те, которые не используются. Они находятся в папке **Resources** плагина, поэтому будут попадать в билд, даже если ты используешь свои. Это сразу сэкономит до 2 мегабайт.
- [ ] Шрифты весят много, вот статья по оптимизации [ссылка](https://vk.com/@-210544836-optimizaciya-proekta-unity).
- [ ] Дополнительная документация от Unity [ссылка](https://docs.unity3d.com/ru/530/Manual/ReducingFilesize.html).
### **External Compress**
- [ ] Все изображения для фонов нужно прогнать через сервисы для уменьшения веса фото.
- [ ] Все видео для фонов нужно прогнать через сервисы для уменьшения веса видео.
- [ ] Все аудио для фонов нужно прогнать через сервисы для уменьшения веса аудио.
### **Environment**
- [ ] Оптимизация моделей: [ссылка](https://www.youtube.com/watch?v=W1JxCJRVjdo).
- [ ] Настройка 3D-моделей (их FBX-файлов): [ссылка](https://www.youtube.com/watch?v=uJaMrKX0DZg) и [ссылка](https://www.youtube.com/watch?v=3DBufWKuHeo).
### **Scene**
- [ ] Все объекты на сцене должны быть префабами или композициями префабов. Иначе Unity будет воспринимать каждый объект как уникальный, что увеличивает размер игры.
- [ ] Если возможно, генерируй окружение через код. Это значительно уменьшит вес сборки, так как объекты не будут заранее созданы и добавлены в сцену.
- [ ] Минимизируй использование сложных физических коллайдеров. Избегай **MeshCollider** и **Tilemap Collider** без **Composite Collider**. Чем больше сложных коллайдеров, тем больше вес сборки. Например, сравни сцену с Tilemap и коллайдером и без него, чтобы увидеть разницу.
---
## Ссылки на статьи по теме
0. [Инструкция по уменьшению веса сборки](https://vk.com/@-210544836-optimizaciya-proekta-unity)
1. Гайд от Кабанчика [ссылка](https://t.me/archivekaban/7)
2. Видео на YouTube от Alex Sosnovskiy [ссылка](https://www.youtube.com/watch?v=oj7-ge_Oi0k)
3. "100 и 1 проблема Unity в WebGL" [ссылка](https://maksimsazanovich.github.io/roundedbox/#100_and_1_problem_of_unity_in_webgl)
4. Видео на YouTube от "Unity без воды" [ссылка](https://www.youtube.com/@Unity3dWithoutWater)
5. Видео на YouTube от Яковлева, часть 1 [ссылка](https://www.youtube.com/watch?v=uJaMrKX0DZg)
6. Видео на YouTube от Яковлева, часть 2 [ссылка](https://www.youtube.com/watch?v=3DBufWKuHeo)