Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

WebGL: сжатые сборки и конфигурация сервера

Чтобы развернуть WebGLJavaScript API, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. в сборке Словарь
, вы должны настроить свой сервер и убедиться, что вы используя правильные заголовки ответа, чтобы браузер мог получить правильный ответ и правильно его обработать.

В Unity есть два основных параметра, влияющих на настройку сервера:

Формат сжатия

Выберите тип сжатия в окне настроек проигрывателя WebGL (меню: Правка > Настройки проекта > Проигрыватель), затем выберите WebGL и разверните раздел Настройки публикации):

Изображение окна публикации WebGL
Изображение окна публикации WebGL
Метод сжатия Описание
gzip Это опция по умолчанию. Файлы Gzip больше, чем файлы Brotli, но быстрее создаются и изначально поддерживаются всеми браузерами как по HTTP, так и по HTTPS.
Brotli Сжатие Brotli предлагает наилучшие коэффициенты сжатия. Сжатые файлы Brotli меньше, чем gzip, но для сжатия требуется больше времени, что увеличивает время итерации при выпуске сборок. Chrome и Firefox изначально поддерживают сжатие Brotli только через HTTPS.
Disabled Отключает сжатие. Используйте этот параметр, если вы хотите реализовать собственное сжатие в постобработкепроцессе, который улучшает визуальные эффекты продукта путем применения фильтров и эффектов до изображение появляется на экране. Вы можете использовать эффекты постобработки для имитации физических свойств камеры и пленки, например Bloom и Depth of Field. Дополнительная информация
См. в Словарь
скриптыКусок кода, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на ввод данных пользователем любым удобным для вас способом. . Подробнее
См. в Словарь
. Вам также следует использовать его, если вы планируете использовать статическое сжатие на сервере хостинга..

Дополнительную информацию о поддержке браузерами выбранных методов сжатия см. в документации по совместимости браузеров WebGL.

Конфигурация веб-сервера

Возможно, вам потребуется изменить конфигурацию сервера, чтобы она соответствовала вашей конкретной настройке сборки. В частности, могут возникнуть проблемы, если у вас уже есть другая конфигурация на стороне сервера для сжатия размещенных файлов, которая может помешать этой настройке. Чтобы браузер выполнял декомпрессию во время загрузки вашего приложения, добавьте к ответу сервера заголовок Content-Encoding. Этот заголовок должен соответствовать типу сжатия, используемому Unity во время сборки. Примеры кода см. в разделе Примеры кода конфигурации сервера.

Резервный вариант декомпрессии

Резервный вариант декомпрессии позволяет Unity автоматически встраивать декомпрессор JavaScript в вашу сборку. Этот декомпрессор соответствует выбранному вами методу сжатия и распаковывает ваш контент, если браузер не может этого сделать.

Включение резервного режима распаковки

Включите резервную распаковку в окне Настройки проигрывателя (меню: Правка > Настройки проекта > Проигрыватель, затем выберите WebGL и разверните раздел Настройки публикации).

Когда вы включаете резервную распаковку, Unity добавляет к файлам сборки расширение .unityweb. Вам следует рассмотреть возможность использования Резервного режима декомпрессии, если у вас меньше опыта в настройке сервера или если конфигурация сервера вам недоступна.

Примечание. Использование этого параметра приводит к увеличению размера загрузчика и менее эффективной схеме загрузки файлов сборки.

Отключение резервного режима распаковки

Параметр Резервный вариант декомпрессии по умолчанию отключен. Поэтому по умолчанию файлы сборки имеют расширение, соответствующее выбранному вами методу сжатия.

Вы можете выбрать один из двух методов сжатия: gzip или Brotli. Дополнительную информацию см. в разделе формат сжатия.

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

Процесс настройки встроенной распаковки в браузере зависит от вашего веб-сервера. Примеры кода см. в разделе Примеры кода конфигурации сервера.

Заголовки Content-Encoding

Заголовок Content-Encoding сообщает браузеру, какой тип сжатия Unity использовал для сжатых файлов. Это позволяет браузеру самостоятельно распаковывать файлы.

Задайте в заголовке ответа Content-Encoding метод сжатия, выбранный в Настройках проигрывателяНастройках, позволяющих устанавливать различные параметры проигрывателя. конкретные параметры финальной игры, созданной Unity. Подробнее
См. в Словарь
.

Метод сжатия Расширение файла Заголовок ответа
gzip .gz Content-Encoding: gzip
Brotli .br Content-Encoding: br

Потоковая передача WebAssembly (заголовок более высокого уровня)

Потоковая передача WebAssembly позволяет браузеру компилировать код WebAssembly во время его загрузки. Это значительно сокращает время загрузки.

Чтобы компиляция потоковой передачи WebAssembly работала, сервер должен возвращать файлы WebAssembly с типом MIME application/wasm. Чтобы использовать потоковую передачу WebAssembly, вам необходимо обслуживать файлы WebAssembly с заголовком ответа Content-Type: application/wasm. Заголовок Content-Type сообщает серверу, к какому типу мультимедиа относится контент. Это значение должно быть равно application/wasm для файлов WebAssembly.

Расширение файла Заголовок ответа
.wasm, .wasm.gz, .wasm.br Content-Type: application/wasm

Примечание. Потоковая передача WebAssembly не работает вместе с декомпрессией JavaScript (если включен параметр «Откат декомпрессии»). В таких случаях загруженный файл WebAssembly должен сначала пройти декомпрессор JavaScript, поэтому браузер не может передавать его во время загрузки.

Дополнительные заголовки

Если ваш файл содержит JavaScript, вы должны добавить заголовок application/javascript Content-Type. Некоторые серверы могут включать это автоматически, а другие нет.

Расширение файла Заголовок ответа
.js, .js.gz, js.br Content-Type: application/javascript

  • Обновлена страница для учета конфигурации сервера в 2020.1
  • Потоковая передача WebAssembly добавлена в 2019.2
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3