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

Создание вашего WebGL-приложения

Чтобы создать сборку для WebGL, выберите Файл > Настройки сборки в главном меню Unity. В списке платформ выберите WebGL и нажмите Переключить платформу.

После настройки параметров сборки выберите один из следующих двух вариантов:

  • Build превращает ваше приложение в проигрыватель.
  • Build and Run создает приложение в проигрывателе и открывает этот проигрыватель на целевой платформе.
Окно настроек сборки
Окно настроек сборки

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

Настройки Функции
Texture CompressionМетод хранения данных, который уменьшает объем требуемого дискового пространства. См. Сжатие текстур, Сжатие анимации, Сжатие звука< /a>, Сжатие компоновки.
См. в Словарь
Выберите один из доступных параметров форматирования ниже, чтобы установить сжатие текстур по умолчаниюОборудование для 3D-графики требует, чтобы текстуры были сжаты в специализированных форматах. которые оптимизированы для быстрой выборки текстур. Подробнее
Просмотрите в формате Словарь
текстуры в проекте. Вы также можете использовать этот параметр для изменения из сценария или с помощью переключателя командной строки -setDefaultPlatformTextureFormat. Дополнительные сведения см. в обзоре формата сжатия текстур. Этот параметр также доступен в настройках проигрывателянастройках, которые позволяют установить различные игра, созданная Unity. Подробнее
См. в окне Словарь
.
Use default format (DXT) Это формат сжатия по умолчанию.
ETC Это расширение является частью WebGL API и предоставляет сжатый ETC формат текстурыФормат файла для обработки текстур во время рендеринга в реальном времени аппаратным обеспечением для трехмерной графики, таким как видеокарта или мобильное устройство. More info
See in Словарь
.
ETC2 Это расширение является частью WebGL API и предоставляет сжатый ETC Формат текстуры. Используйте этот формат сжатия текстур при использовании OpenGL 4.3.
ASTC Этот формат сжатия текстур является популярным выбором благодаря широкому диапазону производных коэффициентов сжатия. Например, сжатие ASTC доступно для большинства графических процессоров Intel и чипов Nvidia Tegra..
DXT Это расширение поддерживает формат сжатия DXTn/BCn..
Development BuildСборка разработки включает символы отладки и включает профилировщик. More info
See in Словарь
Включите этот параметр, чтобы включить символы отладки сценариев и профилировщик в вашу сборку. Когда вы включаете это, Unity устанавливает определение скрипта DEVELOPMENT_BUILD. Этот параметр следует использовать только тогда, когда вы хотите протестировать свое приложение. Обратите внимание, что сборки для разработки не минимизируют содержимое, а это означает, что сборки для разработки очень велики для распространения.
Code Optimization Выберите режим оптимизации для компиляции кода WebGL.
Speed Это значение по умолчанию. При выборе этого параметра создается код WebGL, оптимизированный для производительности во время выполнения.
Size При выборе этого параметра создается код WebGL, оптимизированный для размера сборки. Это особенно полезно при создании игр WebGL для мобильных браузеров на Android и iOSмобильной операционной системе Apple. Подробнее
См. в Словарь
, где параметр оптимизации по скорости по умолчанию приводит к увеличению Файлы WebAssembly для использования мобильными устройствами.
Autoconnect Profiler Как правило, если этот параметр включен, он позволяет автоматически подключать Unity Profiler к вашей сборке. Однако для WebGL, поскольку вы не можете подключить Profilerокно, которое поможет вам для оптимизации вашей игры. Он показывает, сколько времени вы тратите на различные области вашей игры. Например, он может сообщать о проценте времени, затраченном на рендеринг, анимацию или игровую логику. Подробнее
См. в Словарь
работающую сборку. Используйте этот параметр для подключения содержимого к Вместо этого редактор. Это связано с тем, что соединение Profiler обрабатывается с помощью WebSockets в WebGL, но веб-браузер разрешает только исходящие соединения из содержимого. Чтобы этот параметр был доступен, необходимо включить параметр Разработка.
Deep Profiling Support Включите этот параметр, чтобы включить Глубокое профилирование в Профилировщике. Благодаря этому Profiler анализирует каждый вызов функции в вашем приложении и возвращает более подробные данные профилирования. Включение поддержки глубокого профилирования может замедлить выполнение скрипта. Этот параметр доступен, только если вы включили параметр Разработка.
IL2CPP Code Generation Определите, как Unity управляет генерацией кода IL2CPP. Этот параметр доступен только в том случае, если вы используете IL2CPP для своего скриптового бэкенда, а не Mono. Чтобы изменить серверную часть сценариев, перейдите в Настройки проигрывателя > Конфигурация > Серверная часть сценариев и измените значение с Mono на IL2CPP.
Faster runtime Создает код, оптимизированный для производительности во время выполнения. Это поведение по умолчанию в предыдущих версиях Unity.
Faster (smaller) builds Создает код, оптимизированный для размера сборки и итерации. Он создает меньше кода и создает меньшую сборку, но может повлиять на производительность среды выполнения, особенно для универсального кода. Вы можете использовать этот параметр, когда важно более быстрое время сборки, например, при итерации изменений.
Build Используйте его для создания своего приложения.
Build And Run Используйте его для локального просмотра WebGL Player. Unity использует локальный веб-сервер для размещения вашей сборки и открывает ее с URL-адреса localhost. В качестве альтернативы вы можете использовать собственный локальный веб-сервер с правильно настроенными заголовками ответов. Дополнительные сведения см. в разделе WebGL: сжатые сборки и конфигурация сервера.

Чтобы изменить настройки переопределения импорта объектов, см. Настройки сборки.

Создать папку

Папка Build содержит следующие файлы ([ExampleBuild] представляет собой имя целевой папки сборки).

Имя файла Содержит
[ExampleBuild].loader.js Код JavaScript, необходимый веб-странице для загрузки содержимого Unity..
[ExampleBuild].framework.js Среда выполнения JavaScript и плагины.
[ExampleBuild].wasm Двоичный файл WebAssembly.
[ExampleBuild].mem Двоичный образ для инициализации динамической памяти для вашего проигрывателя. Unity генерирует этот файл только для многопоточных сборок WebAssembly.
[ExampleBuild].data Данные ресурсов и СценыСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. More info
See in Словарь
.
[ExampleBuild].symbols.json Имена символов отладки, необходимые для разбора трассировки стека ошибок. Этот файл создается только для выпускных сборок, когда вы включаете параметр «Отладочные символы» (Файл > Настройки сборки > Настройки проигрывателя).
[ExampleBuild].jpg Фоновое изображение, которое отображается во время загрузки сборки. Этот файл создается только в том случае, если в настройках проигрывателя указано фоновое изображение (Файл > Настройки сборки > Настройки проигрывателя > Изображение-заставка). ). Дополнительную информацию см. на странице заставки.

Если вы включите Метод сжатия для своей сборки, Unity определит расширение, соответствующее методу сжатия, и добавит это расширение к именам файлов внутри подпапки Build. Если вы включите Резервный вариант распаковки, Unity добавит расширение .unityweb к именам файлов сборки. В противном случае Unity добавляет расширение .gz для метода сжатия Gzip или .br для метода сжатия Brotli. Дополнительные сведения см. в разделе WebGL: сжатые сборки и конфигурация сервера.

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

Примечание. Открытие проигрывателя непосредственно из файловой системы может не работать в некоторых браузерах. Это связано с ограничениями безопасности, применяемыми к URL-адресам локальных файлов.

Поддержка глубокого профилирования

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

Настройки проигрывателя

WebGL имеет некоторые дополнительные параметры в настройках проигрывателя (меню: Правка > Настройки проектаБольшой набор настроек, которые позволяют настроить поведение физики, звука, сети, графики, ввода и многих других областей вашего проекта. Подробнее
См. Словарь
, затем выберите категорию Игрок ).

Другие настройки

Удалить код двигателя

Откройте Другие настройки, чтобы получить доступ к параметру Удалить код двигателя. Этот параметр установлен по умолчанию, чтобы включить удаление кода для WebGL. Если этот флажок установлен, Unity не включает код для классов, которые вы не используете. Например, если вы не используете какие-либо физические компоненты или функции, весь физический движоксистема, моделирующая аспекты физических систем чтобы объекты могли правильно ускоряться и подвергаться воздействию столкновений, гравитации и других сил. Подробнее
See in Словарь
удален из вашей сборки. Дополнительные сведения см. в разделе «Зачистка» ниже.

Настройки публикации

Включить исключения

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

  • Нет: выберите этот вариант, если вам не нужна поддержка исключений. Это дает наилучшую производительность и наименьшие сборки. При использовании этого параметра любое исключение приводит к остановке вашего контента с ошибкой в ​​этом параметре.
  • Только явные исключения (по умолчанию): выберите этот параметр, чтобы перехватывать исключения, которые явно указаны в инструкции throw в вашем скриптыФрагмент кода, позволяющий создавать собственные компоненты, запускать игровые события, изменять свойства компонентов с течением времени и реагировать на действия пользователя любым удобным для вас способом. нравится. Подробнее
    Посмотреть в Словарь
    , а также убедиться, что окончательно блоки вызываются. Обратите внимание, что выбор этой опции делает сгенерированный код JavaScript из ваших скриптов длиннее и медленнее; Это может быть проблемой только в том случае, если скрипты являются основным узким местом в вашем проекте.
  • Полный без трассировки стека. Выберите этот параметр, чтобы захватить:
    • Исключения, которые явно указаны в операторах throw в ваших сценариях (аналогично параметру Только явные исключения)
    • Нулевые ссылки
    • Доступ к массиву за пределами границ
  • Полный с трассировкой стека: этот параметр аналогичен варианту выше, но также захватывает трассировку стека. Unity генерирует эти исключения, встраивая проверки для них в код, поэтому этот параметр снижает производительность и увеличивает использование памяти браузером. Используйте это только для отладки и всегда тестируйте в 64-разрядном браузере.

Выберите Настройки публикации, чтобы получить доступ к кэшированию данных.

Кэширование данных

Чтобы получить доступ к Кэшированию данных, перейдите к Настройки публикации через Файл > Настройки сборки > Проигрыватель. Настройки > WebGL. Это позволяет браузеру кэшировать основные файлы данных в базе данных IndexedDB.

Использование кэша HTTP браузера по умолчанию не гарантирует, что браузер кэширует конкретный ответ. Это связано с тем, что HTTP-кеш браузера имеет ограниченное пространство, и браузер может не иметь возможности кэшировать слишком большие файлы.

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

Кэширование данных кэширует только файлы .data в кэше IndexedDB для ответов HTTP. Для кэширования AssetBundles необходимо включить кэширование данных и переопределить unityInstance.Module.cacheControl(). Для этого убедитесь, что Module.cacheControl(url) возвращает must-revalidate для запрошенного URL AssetBundle. Например, вы можете переопределить функцию unityInstance.Module.cacheControl() в обратном вызове выполнения обещания, которое возвращает createUnityInstance(). Дополнительную информацию о createUnityInstance() см. в разделе WebGL: сжатые сборки и конфигурация сервера.


  • Удалена цель компоновщика asm.js в Unity 2019.1
  • Обновления файлов сборки и кэширование данных добавлены в Unity 2020.1
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3