Как стать автором
Обновить

Unity «уменьшение размера файла на устройстве» Часть 1

Время на прочтение3 мин
Количество просмотров5.6K

Когда игра подходит к релизу, ее объем занимаемой памяти сильно превышает желаемый. Если говорить с точки зрения пользователя, то они тоже не любят, когда приложение весит очень много. Это может отпугнуть как при первом скачивании, так и при очистке телефона, когда нужно будет освободить место.

В этой статье будут рассмотрены основные способы оптимизации игры на Unity по уменьшению размера файла на устройстве. В основном статья подходит для мобильных платформ, так как на ПК игры весом в 100Гб уже стали нормой. Многие методы и настройки будут нацелены именно на мобильные устройства в частности Android.

1) Самый простой и порой очевидный способ «Удалить все не используемые ассеты»

Когда разработка идет полным ходом, в игру добавляется много разных ассетов. Но мало кто занимается удалением не используемых. А ведь это не только уменьшает занимаемое место будущей игры, но и очищает структуру проекта.

2) Выбрать метод сжатия

File > Build settings > Compression method

На Android сжатие по умолчанию — ZIP, что дает несколько лучшие результаты сжатия, чем LZ4HC. Однако ZIP-данные распаковываются медленнее. Что означает, что простая игра может запускать несколько минут.

Если есть способ уменьшить размер файла другим способом, то лучше выбрать LZ4HC. Метод высокой степенью сжатия, который медленнее собирается, но дает лучшие результаты при сборке релиза.

3) Выбрать метод сжатия текстур

File > Build settings

Большинство современных графических процессоров Android поддерживают формат сжатия ASTC. Если вам нужна поддержка старых устройств, то все графические процессоры, работающие под управлением Vulkan, Metal или OpenGL ES 3.0, поддерживают формат ETC2.

Для еще более старых устройств обычно доступен только формат ETC. Недостатком является отсутствие прямой поддержки альфа-канала (прозрачности изображения).

4) Выбрать целевую архитектуру

Player settings > other settings > Соnfiguration > target architectures

Если вы не планируете выпускать игру под старые платформы, то можно выбрать ARM64. ARM7 старые телефоны, ARM64 новые телефоны.

Chrome OS это операционная система, используемая на устройствах Chromebook. Для обычных телефонов и планшетов включать поддержку этой платформы не обязательно.

5) Разделить файловые сборки по архитектурам

Player settings > other settings > Configuration > target architectures > Split APKs by target architecture (Experimental)

Не работает в большинстве магазинов приложений. Настройка нацелена на Google play. Благодаря ей в магазине будет хранится несколько сборочных файлов для разных архитектур. Так сборочные файлы будут меньше требовать памяти на устройстве и будут более оптимизированы.

6) Поиск не используемых скриптов

Player settings > other settings > Optimization > Manager scripting level = high

Эта настройка будет автоматический искать не используемый код. Таким образом будет произведена оптимизация пространства на устройстве и производительность приложения

7) Выбор графического api

Player settings > other settings > graphics api’s= opengles2

Если игра не требует высокого уровня графики, вы можете выбрать графический api полегче (opengles2).

8) Переключиться на промежуточный с++

Player settings > other settings > Configuration > Scripting backend = ILL2CPP

В Unity есть 2 типа компиляции. Mono – скрипты компилируются по запросу. И ILL2CPP – скрипты компилируются перед запуском. Mono подходит для разработки и тестов. Так как здесь требуется мгновенная компиляция. ILL2CPP – подходит для релиза, когда игра уже готова к выпуску.

9) Выбрать способ компиляции

Player settings > other settings > Configuration > C++ compiling config = Release

Debug –подходит для доработки исправления багов, если игра уже выпущена и перенастраивать нет времени.

Release – компиляция для выпускаемой сборки. Происходит намного дольше. Но в результате сборка будет хорошо оптимизована и уменьшена в размерах.

Master – Улучшенный метод компиляции. В маленьких проектах будет слабый эффект. В больших проектах работает лучше. Требует очень большого времени компиляции.

10) Enable Roslyn Analyzers

Player settings > other settings > Configuration > 10) Enable Roslyn Analyzers = false

Отключите этот параметр для компиляции без DLL анализатора Roslyn, которые могут присутствовать в вашем проекте.


В данной статье были представлены самые простые способы уменьшения размера игровой сборки. После перенастройки вашего проекта, его размер может уменьшить в 2 раза. В следующих статьях будут описаны другие методы.

Теги:
Хабы:
Всего голосов 6: ↑4 и ↓2+4
Комментарии3

Публикации

Истории

Работа

Ближайшие события