Оптимизация веб-платформы для мобильных устройств
Быстрая загрузка имеет решающее значение для веб-приложений, особенно на мобильных устройствах, которым может потребоваться загрузить ресурсы приложения через медленную мобильную сеть. Медленная загрузка может привести к плохому опыту пользователя и высокому уровню отсева. Поэтому важно оптимизировать веб-сборку для мобильных устройств.
Веб-приложения для мобильных устройств работают наилучшим образом, когда у вас есть небольшая сборка и высокопроизводительный код, так как для загрузки требуется меньше данных, меньше данных хранится на устройстве пользователя и меньше данных загружается во время инициализации, что ускоряет время загрузки.
Для веб-оптимизации, не связанной с мобильными устройствами, см. Оптимизация веб-компиляции.
Оптимизация краткое руководство
Используйте эти рекомендуемые настройки для оптимизации веб-платформы Unity для мобильных устройств:
| РЕКОМЕНДАЦИЯ | Описание |
|---|---|
| Оптимизировать для размера | Отключите параметры сборки для разработки и оптимизируйте сборку для размера диска (Disk Size с LTO). |
| Используйте сжатие Brotli | Используйте метод сжатия Brotli для сжатия сборки Player. |
| Используйте систему Unity Addressables | Используйте систему Unity Addressables для ассетов. |
| Оптимизация аудио файлов | Уменьшите количество дискового пространства, которое занимает ваше аудио. |
| Оптимизация графики в вашем проекте | Уменьшите количество дискового пространства, которое занимает ваша графика. |
| Изменить уровень качества графики | Снижение уровня качества для ускорения сборки. |
Оптимизировать для размера
Меньший размер сборки лучше для мобильных устройств, потому что там меньше данных для загрузки, что обычно делает время загрузки короче и использует меньше памяти на устройстве пользователя.
Чтобы сделать сборку как можно меньше, отключите параметры сборки для разработчиков и оптимизируйте сборку для размера диска:
Перейдите в Файл > Профиль сборки.
Выберите Веб.
Отключить Разработка Build, если включено.
Установите Код Оптимизации на Размер Диска с LTO.
Примечание: Оптимизированные сборки с LTO могут занять много времени. Используйте эту оптимизацию только для окончательного выпуска или если вам нужно проверить производительность. Используйте более быстрый вариант сборки во время разработки.
Другие параметры, влияющие на размер сборки, см. в Рекомендуемые параметры проигрывателя для оптимизации веб-компилирования и Удалить неиспользуемые ресурсы из веб-компилирования.
Используйте C# для включения параметра оптимизации размера
Если у вас есть скрипт, который изменяет настройки, и вы хотите включить параметр Disk Size с LTO с C#, добавьте в свой скрипт следующий код:
// Set Platform Settings to optimize for disk size (LTO)
UnityEditor.WebGL.UserBuildSettings.codeOptimization = UnityEditor.WebGL.WasmCodeOptimization.DiskSizeLTO;
Используйте сжатие Brotli
Сжатие Brotli — это настройка, при которой Unity предварительно сжимает файлы для вас во время сборки. Сжатые файлы Brotli меньше, чем сжатые файлы gzip, что может уменьшить размер сборки.
Кроме того, Chrome и Firefox поддерживают сжатие Brotli только по умолчанию по сравнению с HTTPS.. Если это не подходит для вашего приложения, рассмотрите возможность сжатия Gzip.
Для использования параметра сжатия Brotli:
Убедитесь, что ваш веб-сервер настроен на обслуживание файлов Brotli с правильной кодировкой. Для более подробной информации см. Развертывание веб-приложения.
Доступ к настройкам Игрок (Меню: Изменить > Project Настройки > Игрок).
Нажмите на вкладку Настройки для веба.
Разверните раздел Параметры публикации.
Установите Формат сжатия на Бротли.
Используйте C# для изменения формата сжатия
Если у вас есть скрипт настройки проекта и вы хотите изменить формат сжатия с помощью C#, добавьте следующий код в ваш скрипт:
// Set the compression format to Brotli
PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;
Используйте систему адресов Unity
Приложения для мобильных браузеров нуждаются в коротком времени загрузки, чтобы уменьшить процент отката пользователей. Чтобы сократить время инициализации, вместо загрузки всех ресурсов при запуске, используйте адресируемые объекты для загрузки ресурсов только тогда, когда они нужны приложению. Отложите загрузку определенных ресурсов до загрузки игры.
Для этих изменений, убедитесь, что вы обновили StreamingAssets/aa/catalog.json с любыми новыми адресуемыми файлами, которые вы создали.
Дополнительные сведения об адресуемых и их настройке см. в Addressables.
Для дальнейшей оптимизации адресуемых объектов попробуйте следующее.
Сортировка адресуемых файлов по группам
Упорядочите адресуемые объекты по группам, чтобы уменьшить количество пакетов ассетов. Чем меньше количество пакетов ассетов, тем меньше размер сборки. Дополнительные сведения об адресуемых группах и способах их создания см. в Управление и создание групп.
Оптимизация аудиофайлов
Если у вас есть много аудио файлов в вашем проекте, лучше сжать ваши файлы, чтобы уменьшить размер аудио файлов. Однако сжатый аудио может привести к более низкому качеству звука. Для получения информации о форматах сжатия, см. Аудиоклип.
Оптимизация графики в вашем проекте
Сложная графика может потреблять ресурсы и увеличивать размер сборки, а также снижать ее производительность. Однако существуют способы оптимизации графики для уменьшения размера сборки и повышения производительности. Чтобы оптимизировать графику в сборки, попробуйте следующее:
Используйте ASTC сжатые текстуры, когда это возможно
ASTC сжатые типы текстур обеспечивают небольшие размеры текстур и экономию времени загрузки. Если ASTC не поддерживается, рассмотрите ETC2. Для получения дополнительной информации, см. форматы текстур.
Для использования сжатых текстур ASTC:
Выберите свой ресурс текстуры в проекте, чтобы открыть окно Настройки импорта текстуры.
Выберите Веб-настройки.
Включить Переопределение Для Веб.
Установите Формат на один из параметров блока ASTC.
Используйте большие размеры блоков для ASTC сжатых текстур
Если вы используете сжатые текстуры ASTC, попробуйте использовать более большой размер блока для сжатия. ASTC поддерживает размеры блоков от 4x4 до 12x12 текселей. Большие размеры блоков приводят к более низкому качеству текстур, но меньшим сборкам. Для хорошего баланса между качеством и размером, который оптимизирует время загрузки через мобильную сеть, рассмотрите возможность использования 8x8. Если время загрузки все еще слишком медленно, попробуйте увеличить размер блока. Для получения дополнительной информации, см. Рекомендуемые, стандартные и поддерживаемые форматы текстур, по платформам.
Чтобы установить размер блока сжатой текстуры ASTC:
Выберите свой ресурс текстуры в проекте. Настройки импорта текстуры показывают.
Выберите Веб-настройки.
Включить Переопределение Для Веб.
Установите Формат на один из более крупных параметров блока ASTC, например, RGB(A) Сжатый ASTC 8x8 блок.
Снижение уровня качества графики
Рекомендуется установить уровень качества графики на самый быстрый вариант. Более быстрый вариант приводит к уменьшению размера сборки.
Чтобы изменить уровень качества графики:
Доступ к настройкам Качество (Меню: Изменить > Project Настройки > Качество).
Выберите уровень качества Низкий или Очень низкий.
Однако самый быстрый параметр может повлиять на визуальный вид приложения, поэтому убедитесь, что приложение выглядит так, как вам нужно.
Используйте C# для изменения уровня качества
Если у вас есть скрипт настройки проекта и вы хотите изменить уровень качества вашего проекта в скрипте, добавьте следующий код:
// Set the quality level to Very Low (index 0)
QualitySettings.SetQualityLevel(0, true);
Функция SetQualityLevel() принимает индекс матрицы Уровень Качества в качестве значения. SetQualityLevel(0, true) в этом случае является настройкой Очень Низкий, или первым параметром в матрице Уровень Качества. Чтобы изменить его на Низкий или второй параметр, используйте вместо этого SetQualityLevel(1, true).