Unity 6.3
0 онлайн 94 гостей 3 в системе
Вход
Разработка платформы Шаг 293 из 387

Настройки веб-плеера

Использование Игрок настройки знать, как Unity сборки и отображает ваше окончательное веб-приложение. Для описания общего Игрок настройки, см. Игрок настройки.

Примечание: Платформа Facebook Мгновенные игры использует эти настройки.

Чтобы получить доступ к настройкам Web Player:

  • Из главного меню Unity перейдите в Изменить > Project Настройки > Игрок. Появится окно настроек Игрок.
  • Выберите вкладку Веб, чтобы просмотреть настройки Веб-плеера.
Настройки веб-плеера
Настройки веб-плеера

Документацию по свойствам можно найти в следующих разделах:

Примечание: Несмотря на то, что панель Иконы появляется в настройках Веб Игрок, настройки значков недоступны, так как Веб-игры не используют значки.

Дополнительные сведения о Web Параметры публикации, см. Создание веб-сайта и его эксплуатация.

Разрешение и представление

Используйте раздел Разрешение и представление для настройки аспектов внешнего вида экрана в разделе Разрешение.

Раздел «Разрешение» для платформы Web Player
Раздел «Разрешение» для платформы Web Player

Резолюция

Вы можете настроить режим экрана и размер по умолчанию элемента Веб-панно, изменив следующие параметры:

Настройка Функция
По умолчанию Canvas Ширина Устанавливает ширину элемента Web Canvas.
По умолчанию Canvas Высота Устанавливает высоту элемента Web Canvas.
Запуск в фоновом режиме Включите эту опцию, чтобы разрешить содержимому продолжать работать, когда холст или окно браузера теряют фокус.

Шаблон веб-сайта

Выберите шаблон для использования в вашем веб-сайте Project:

  • Страница Страница по умолчанию представляет собой простую белую страницу с полосой загрузки на сером холсте.
  • Страница Минимальная содержит только необходимый шаблонный код для запуска веб-содержимого.
  • Страница PWA содержит Progressive Web App, включая файл веб-манифеста и код сервис-воркера.

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

Изображение Splash

Используйте Виртуальная реальность Спласс изображения настройка, чтобы выбрать пользовательский splash изображение для XR Для получения информации о общих настройках экрана запуска, см. Экран запуска.

Splash screen settings for virtual reality.
Настройки экрана заставки для виртуальной реальности.

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

Этот раздел позволяет настроить ряд параметров, которые распределены по следующим группам:

Рендеринг

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

Настройки рендеринга Player для веб-платформы
Настройки рендеринга Player для веб-платформы
Настройка Функция
Цветовое пространство Выберите цветовое пространство, которое будет использоваться для отображения. Дополнительные сведения см. в Цветовые пространства.
  • Гамма: Гамма цветовое пространство обычно используется для расчета освещения на более старом оборудовании, ограниченном 8 битами на канал для формата кадрового буфера. Несмотря на то, что мониторы сегодня цифровые, они все еще могут принимать гамма-кодированный сигнал в качестве входа.
  • Линейный: Линейное цветовое пространство дает более точные результаты. Когда вы выбираете работу в линейном цветовом пространстве, Редактор по умолчанию использует выборку sRGB. Если ваши Тексты находятся в линейном цветовом пространстве, вам нужно работать в линейном цветовом пространстве и отключить выборку sRGB для каждой Тексты.
Автографика API Включает веб-графику по умолчанию API (WebGL 2.0). По умолчанию эта опция включена.
Отключите эту опцию, чтобы отобразить список Graphics API, в котором можно вручную выбрать и изменить порядок графики APIs.
Графика API Приоритизировать первый API в этом списке в качестве веб-графики по умолчанию API для вашего проекта. Если браузер не поддерживает API или есть другая проблема, Unity пытается следующий API в списке (если таковой существует) в качестве резерва.
Нажмите и перетащите элементы в списке, чтобы изменить их порядок. Дополнительную информацию о графике APIs для веб-страниц см. в Веб-графика APIs.
Это свойство доступно только при отключенном Автографика API.
Статическое дозирование Включите эту опцию для использования static batching.
Динамическая дозировка Использование Динамическое пакетирование на вашей сборки (включено по умолчанию).

Примечание: Динамическая обработка батчей не оказывает никакого воздействия, когда Scriptable Render Pipeline активен, поэтому эта настройка видна только в том случае, если Scriptable Render Pipeline Активы Графика параметр пустой.
Графические работы (экспериментальные) Включите эту опцию, чтобы дать указание Unity перегружать графические задачи (циклы рендеринга) на рабочие потоки, запущенные на других ядрах CPU. Это предназначено для сокращения времени, затрачиваемого Camera.Render на основной поток, который часто является узким местом.

Примечание: Эта возможность экспериментальна. Она может не привести к повышению производительности вашего проекта, и может привести к новым сбоям.
Формат сжатия текстуры Выберите DXT, ETC2или ASTC, чтобы установить формат сжатия текстуры для веб-платформы. Информацию о выборе правильного формата см. в Обзор формата сжатия текстуры. Чтобы создать сборки для настольных и мобильных браузеров из скрипта, см. в Сжатие текстуры в вебе.
Кодирование Lightmap
Вы можете выбрать Низкое качество, Нормальное качествоили Высокое качество
HDR Кодирование кубических карт Определяет схему кодирования и формат сжатия HDR кубических карт.
Вы можете выбрать Низкое качество, Нормальное качествоили Высокое качество. Дополнительные сведения см. в Lightmaps: Техническая информация.
Потоковая передача Lightmap Включите эту опцию, чтобы использовать Потоковое вещание Mipmap для lightmaps. Unity применяет эту настройку ко всем lightmaps при их генерации.

Примечание: Чтобы использовать эту настройку, необходимо включить Texture Mipmap Streaming Quality.
Приоритет потока Устанавливает приоритет для всех lightmaps в системе Потоковое вещание Mipmap. Unity применяет эту настройку ко всем lightmaps при их генерации.
Положительные числа дают более высокий приоритет. Допустимые значения от -128 до 127.
Статистика времени кадра Включить это свойство для сбора CPU и GPU кадров данные времени с использованием FrameTimingManager API. Если отключить это свойство, Динамическое разрешение настройка камеры не может использовать эти данные, чтобы динамически регулировать разрешение для уменьшения GPU рабочая нагрузка.
Виртуальная текстура (экспериментальная) Снижает использование памяти GPU и время загрузки текстур, если ваш Scene имеет много текстур высокого разрешения. Дополнительную информацию см. в Виртуальное текстурирование.
Примечание: Unity Editor требует перезапуска для того, чтобы это свойство вступило в силу.
Модель точности шейдера Выберите по умолчанию точность семплеров и определение half, используемого в шейдерах. Дополнительные сведения см. в ShaderPrecisionModel.
360 Стерео Захват Указывает, может ли Unity захватывать стереоскопические 360-градусные изображения и видео. При включении Unity компилирует дополнительные варианты шейдеров для поддержки 360-градусного захвата (в настоящее время только на Windows/OSX). Ключевое слово enable_360_capture добавляется во время вызова RenderToCubemap, но не запускается вне этой функции.

Конфигурация

Параметры конфигурации для веб-платформы
Параметры конфигурации для веб-платформы
Свойство Описание
Скриптирование Выберите скриптовый сервер, который вы хотите использовать. Скриптовый сервер определяет, как Unity компилирует и выполняет код C# в вашем Project.
  • Mono: Компиляции C# код в .NET Общий промежуточный языкCIL) и исполняет это CIL с помощью Common Language Runtime. Дополнительные сведения см. в Mono.
  • IL2CPP: компилирует код C# в CIL, преобразует CIL в C++, а затем компилирует C++ в нативный машинный код, который выполняется непосредственно во время работы приложения. Дополнительные сведения см. в разделе IL2CPP.
API Совместимость Выберите, какие .NET APIs можно использовать в вашем проекте. Эта настройка может повлиять на совместимость со сторонними библиотеками. Однако она не влияет на код, специфичный для Редактора (код в каталоге Редактора или в определении сборки, специфическом для Редактора).

Тип: Если у вас возникают проблемы с сборкой стороннего производителя, вы можете попробовать предложение в API Совместимость раздел.

  • .Net Рамки: Совместим с .NET Framework 4 (который включает все в .NET Standard 2.0 profile плюс дополнительный APIs). Выберите этот вариант, когда используете библиотеки, которые доступны APIs, не включенные в .NET Standard 2.0. Производит более крупные сборки и любые дополнительные APIs доступные не обязательно поддерживаются на всех платформах. Для более подробной информации, см. Ссылки на дополнительные сборки библиотек классов.
  • .Net Стандартный 2.1: Производит меньшие сборки и имеет полную кросс-платформенную поддержку.
Уровень совместимости сборок редактора Выберите .NET APIs для использования в сборках Редактора.
  • .NET Рамки: Совместим с .NET Framework 4 (который включает все в .NET Standard 2.1 profile плюс дополнительный APIs). Выберите этот вариант при использовании библиотек, которые доступны APIs не включены в .NET Standard 2.1. Производит более крупные сборки и любые дополнительные APIs доступные не обязательно поддерживаются на всех платформах. Для получения дополнительной информации, см. Ссылки на дополнительные сборки библиотек классов.
  • .NET Стандарт: Совместим с .NET Стандарт 2.1. Производит меньшие сборки и имеет полную кросс-платформенную поддержку.
IL2CPP Генерация кодов Определяет, как Unity управляет генерацией кода IL2CPP.

Примечание: Чтобы использовать это, установите Scripting Backend на IL2CPP.
C++ Конфигурация компилятора Выберите конфигурацию компилятора C++, используемую при компиляции кода, генерируемого IL2CPP.
  • Отладка: Конфигурация отладки отключает все оптимизации, что делает код быстрее для сборки, но медленнее для выполнения.
  • Выпуск: Конфигурация выпуска позволяет оптимизировать так, что скомпилированный код работает быстрее, размер двоичного файла уменьшается, но компиляция занимает больше времени.
  • Мастер: Конфигурация Master позволяет использовать все возможные оптимизации, выжимая каждый бит производительности. Например, на платформах, использующих компилятор MSVC++, эта опция позволяет генерировать код в режиме link-time. Компиляция кода с помощью этой конфигурации может занимать значительно больше времени, чем с помощью конфигурации Release. Рекомендуемая наилучшая практика создания версии для продажи игры с помощью конфигурации Master, если увеличение времени сборки приемлемо.
Используйте постепенно GC Использует инкрементальный сборщик мусора, который распределяет сбор мусора по нескольким кадрам, чтобы уменьшить связанные с сбором мусора пики в длительности кадра. Дополнительные сведения см. в Автоматическое управление памятью.
Разрешить загрузку через HTTP Указать, разрешать ли загрузку контента через HTTP. По умолчанию Не разрешено из-за рекомендуемого протокола HTTPS, который более безопасен.
  • Не разрешено: Никогда не разрешайте загрузки сверх HTTP.
  • Разрешено в сборках для разработчиков: Разрешить загрузку только через HTTP в сборках для разработчиков.
  • Всегда разрешено: Разрешить загрузки через HTTP в сборках для разработки и выпуска.
Активная обработка ввода Выберите способ обработки ввода пользователей.
  • Менеджер ввода (Старый): Используйте оригинальные настройки Ввода.
  • Input System Пакет (новая): Используется новая пакет системы ввода.
  • Обе: Используйте обе системы.

Загрузка варианта шейдера

Используйте эти параметры для управления объемом памяти, используемой шейдерами во время выполнения.

Свойство Описание
Размер блока по умолчанию (MB) Задает максимальный размер сжатых блоков данных вариантов шейдера Unity, хранящихся в созданном приложении для всех платформ. По умолчанию это 16. Дополнительные сведения см. в Загрузка шейдера.
Количество кусков по умолчанию Устанавливается ограничение по умолчанию на количество разсжатых кусочков, которые Unity хранит в памяти на всех платформах. По умолчанию 0, что означает, что ограничения нет.
Переопределение Разрешает переопределение Размер куска по умолчанию и Количество куска по умолчанию для этой цели сборки.
Размер куска (MB) Переопределяет значение Размер блока по умолчанию (MB) для этой цели сборки.
Количество кусочков Переопределяет значение Количество блоков по умолчанию на этой цели сборки.

API Совместимость

Вы можете выбрать уровень совместимости моно API для всех целей. Иногда сторонняя библиотека .NET использует функциональность, которая находится за пределами вашего уровня совместимости .NET. Чтобы понять, что происходит в таких случаях, и как лучше всего это исправить, попробуйте выполнить следующие предложения:

  1. Установка ILSpy для Windows.
  2. Перетащите сборки .NET для уровня совместимости API, с которым у вас возникли проблемы, в ILSpy. Проблемные файлы можно найти в Frameworks/Mono/lib/mono/YOURSUBSET/.
  3. Перетащите в стороннюю сборку.
  4. Щелкните правой кнопкой мыши стороннюю сборку и выберите Анализ.
  5. В отчете об анализе осмотрите Зависит от Отчет выделяет все, что зависит от сборки сторонней стороны, но это не доступно в разделе .NET уровень совместимости по вашему выбору в красном цвете.

Компиляция скриптов

Параметры компиляции скриптов для веб-платформы
Параметры компиляции скриптов для веб-платформы
Свойство Описание
Определение символов скриптов Задает пользовательские флаги компиляции.

Дополнительные сведения см. в Компиляция в зависимости от платформы.
Дополнительные аргументы компилятора Указывает дополнительные аргументы для передачи Roslyn C# компилятор. Введите один допустимый аргумент компилятора для каждой записи в списке. Чтобы создать новую запись, выберите Плюс (+)Чтобы удалить запись, выберите Исключить (-)Выбрать Применить чтобы включить вновь добавленные аргументы в будущие компиляции. Вернуть чтобы сбросить список до последнего примененного значения stateАргументы должны использовать csc.exe синтаксис, например: -warnaserror. Полный список поддерживаемых опций компилятора Roslyn см. C# параметры компилятора в документации Майкрософт.

Вы также можете предоставить дополнительные аргументы командной строки для C# компилятор с csc.rsp файл ответа в вашем проекте Assets Дополнительные сведения о создании файла ответов см. в разделе Создание файла ответов. Примечание: Определение одних и тех же аргументов в обоих Дополнительные аргументы компилятора список и файл ответов могут вызвать ошибки и непредвиденное поведение.
Подавление общих предупреждений Указывает, должны ли отображаться предупреждения C# CS0169 и CS0649.
Разрешить «небезопасный» код Включает поддержку компиляции «небезопасного» C# кода в предопределенную сборку (например, Assembly-CSharp.dll).
Для файлов определения сборки (.asmdef), щелкните один из ваших .asmdef файлов и включите опцию в окне Inspector, которое появится.
Использование детерминистической компиляции Указывает, следует ли запрещать компиляцию с флагом -deterministic C#. При включении этого параметра скомпилированные сборки будут одинаковыми по байтам каждый раз, когда они будут компилироваться.

Дополнительные сведения см. в разделе C# Параметры компилятора, которые управляют генерацией кода.

Оптимизация

Настройки оптимизации для веб-платформы
Настройки оптимизации для веб-платформы
Свойство Описание
Prebake столкновения сетки Добавляет данные о столкновениях в Меши во время сборки.
Предварительно загруженные активы Задает массив Assets для проигрывателя для загрузки при запуске.
Чтобы добавить новые Assets, увеличьте значение свойства Размер и затем установите ссылку на Asset для загрузки в новом поле Элемент, которое появится.
Код двигателя полосы Включите эту опцию, если вы хотите, чтобы инструмент Unity Linker удалял код для функций Unity Engine, которые не используются вашим Project. Эта опция доступна только с IL2CPP скриптовый бэкэнд. Большинство приложений не используют все доступные DLL. Эта опция удаляет DLLs, который ваше приложение не использует, чтобы уменьшить размер встроенного проигрывателя. Если ваше приложение использует один или несколько классов, которые обычно удаляются при текущих настройках, Unity отображает сообщение об отладке при попытке создания приложения.
Управляемый уровень стрипинга Выберите, насколько агрессивно Unity удаляет неиспользуемый управляемый (C#) код. Когда Unity создает ваше приложение, процесс Unity Linker может удалить неиспользуемый код из управляемого DLLs, используемого вашим Project. Удаление кода может уменьшить размер получаемого исполняемого файла, но иногда может удалить используемый код.

Дополнительные сведения об этих параметрах и удалении байт-кода с помощью IL2CPP см. ManagedStrippingLevel.

  • Минимальная: используйте этот вариант, чтобы урезать библиотеки классов, UnityEngine и сборки Windows Runtime, а все остальные сборки скопировать.
  • Низкий: Удалить недоступный управляемый код для уменьшения размера сборки и Mono/IL2CPP времени сборки.
  • Средний: Запустите UnityLinker для уменьшения размера кода за пределы того, что Низкий может достичь. Вам может понадобиться поддержка пользовательского файла link.xml, и некоторые пути кодов отражения могут не вести себя так же.
  • Высокий: UnityLinker удалит столько кода, сколько возможно. Это еще больше уменьшит размер кода за пределы того, что может сделать Medium, но управляемая отладка кода некоторых методов может больше не работать. Вам может понадобиться поддержка пользовательского файла link.xml, и некоторые пути кодов отражения могут не вести себя так же.
Включить Внутренний Profiler (Устаревший) Эта функция устарела и будет исключена в будущей версии Unity. Используйте окно Profiler (меню: Window > Analytics > Profiler).

Profiler собирает данные о производительности приложения и отображает отчет на консоли. Отчет содержит количество миллисекунд, затрачиваемых каждой подсистемой Unity на выполнение каждого кадра, усредненное по 30 кадрам.
Сжатие вершин Это влияет на все меши в вашем проекте.
Как правило, сжатие вершин используется для уменьшения размера данных меши в памяти, уменьшения размера файла и повышения производительности GPU.

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

Предупреждение: Если эта опция включена, не меняйте параметры материалов или шейдеров во время выполнения.

Дополнительные сведения см. в PlayerSettings.stripUnusedMeshComponents.
Стриппинг текстуры
Unity определяет неиспользуемые уровни mipmap путем сравнения уровня mipmap с параметрами качества текущей платформы. Если уровень mipmap исключен из всех параметров качества текущей платформы, то Unity удаляет эти уровни mipmap из сборки во время сборки. Если QualitySettings.globalTextureMipmapLimit установлен на уровень mipmap, который был удален, Unity установит значение на ближайший уровень mipmap, который не был удален.

Трек стека

Выберите параметры журналирования для веб-платформы.

Параметры ведения журнала для веб-платформы
Параметры ведения журнала для веб-платформы

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

Свойство Описание
Нет Никакие журналы не записываются.
ScriptOnly Ведет журнал только при запуске скриптов.
Полная Журналы все время.

Устаревшие

Включите опцию Clamp BlendShapes (Deprecated) для зажима диапазона весов форм в Skinned Mesh Renderers.

Старые настройки для веб-платформы
Старые настройки для веб-платформы

Параметры публикации

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

Параметры публикации для веб-платформы
Параметры публикации для веб-платформы
Свойство Описание
Формат сжатия Выберите формат сжатия, который будет использоваться для файлов сборки выпуска. Можно выбрать из следующих вариантов: Gzip, Brotli и Disabled (none). Этот параметр не влияет на сборки разработчиков.
Имя файла как хэш Включите эту опцию, чтобы использовать хэш MD5 содержимого несжатого файла в качестве имени файла для каждого файла в сборке.
Кеширование данных Включите эту опцию, чтобы автоматически кэшировать данные содержимого Asset на компьютере пользователя, чтобы их не приходилось повторно загружать при последующих запусках (если только содержимое не изменилось).
Кэширование реализуется с помощью IndexedDB API, предоставляемых браузером. Некоторые браузеры могут реализовать ограничения вокруг этого, например, запрашивать у пользователя разрешение на кэширование данных сверх определенного размера.
Символы отладки Выберите один из доступных параметров, чтобы указать, как символы отладки будут добавляться в сборку.
  • Выкл.: Выберите эту опцию, если вы не хотите, чтобы символы отладки добавлялись в вашу сборку.
  • External: Выберите эту опцию, чтобы сохранить символы отладки в отдельном файле, который можно загрузить с сервера при возникновении ошибки. Рекомендуется выбрать эту опцию для сборок выпуска.
  • Встроенный: Выберите эту опцию, чтобы вставить символы отладки в файл WASM. Эта опция помогает сохранить символы отладки и выполнить деманжирование (отображение первоначальных имен функций) трассировки стека при возникновении ошибки. По умолчанию поддержка деманжирования доступна для этой опции.
Резервный режим декомпрессии Включить резервный код декомпрессии для файлов сборки в загрузчике. Используйте этот параметр, если невозможно настроить заголовки ответов сервера в соответствии с выбранным методом сжатия.
Предпочтение питания Устанавливает предпочтение, для которого GPU будет использоваться при отображении на устройстве с несколькими GPU. Обратите внимание, что браузер может игнорировать это предпочтение.
  • По умолчанию: Позволяет браузеру выбрать конфигурацию GPU.
  • Низкая производительность: Запрос на использование браузером встроенного GPU для определения приоритета энергосбережения.
  • Высокая производительность: Запрос на использование браузером внешнего GPU для определения приоритета производительности отображения.

WebAssembly Языковые характеристики

Используйте этот раздел для настройки возможностей языка WebAssembly для вашего веб-приложения.

Свойство Описание
Включить исключения Выберите способ обработки неожиданного поведения кода (обычно рассматриваемого как ошибка) во время выполнения.
  • Нет: Любое исключение приводит к тому, что ваш контент останавливается с ошибкой. Выберите эту опцию, если вам не нужна поддержка исключений. Это дает наилучшую производительность и наименьшие сборки.
  • Только явные исключения (по умолчанию): Захват исключений, явно указанных из throw заявление в ваших скриптах и убедитесь, finally блоков. Эта опция делает генерируемые блоки JavaScript код из ваших скриптов длиннее и медленнее. Это может быть проблемой только в том случае, если скрипты являются основным узким местом в вашем проекте.
  • Полный без Stacktrace: Захват исключений, которые явно указаны из throw заявки в ваших скриптах, нулевые ссылки и доступы к массивам вне границ.
  • Полный с Stacktrace:Такое же, как и Полный без Stacktrace, но также захватывает следы стеков. Unity Java генерирует эти исключения, вставляя проверки в код, поэтому эта опция снижает производительность и увеличивает использование памяти браузера. Используйте эту опцию только для отладки, и всегда тестируйте в 64-битном браузере.
Включить Native C/C++ Многопоточность Включите эту опцию, чтобы использовать основной код Unity C/C++, предназначенный для многопоточности WebAssembly/SharedArrayBuffer (экспериментальный). Если эта опция включена, в конфигурации сервера необходимо установить заголовки Cross-Origin Opener Policy (COOP), Cross-Origin Embedded Policy (COEP) и Cross-Origin Resource Policy (CORP). Примеры настройки этих заголовков см. в Server configuration code examples. Обратите внимание, что не все браузеры поддерживают SharedArrayBuffer.

Эта опция не включает многопоточность кода C#, поскольку это требует дальнейшего совершенствования стандарта языка WebAssembly. Рекомендуется отключить эту опцию и использовать ее только для оценки будущих веб-функций.
Включить WebAssembly 2023 Если этот параметр включён, создаваемый код предназначается для WebAssembly 2023 — введённого Unity названия набора новых возможностей языка WebAssembly. К ним относятся коды операций расширения знака, непрерывающие инструкции преобразования чисел с плавающей запятой в целые, массовые операции с памятью, интеграция JS BigInt, WebAssembly.Table, нативные исключения WebAssembly и SIMD (требуется Chrome ≥ 91 (май 2021 г.), Firefox ≥ 89 (июнь 2021 г.) или Safari ≥ 16.4 (март 2023 г.)). Если параметр отключён, целевым становится исходный набор возможностей WebAssembly MVP.
Использование WebAssembly.Table Включите этот параметр, если вы хотите, чтобы веб-создание было нацелено на WebAssembly.Table языковая функция для более быстрого JS-Wasm время интероп и сборки. Когда эта опция отключена, Web сборка нацелена на более старые устаревшие Emscripten -sDYNCALLS модель для обратной совместимости с более старыми Unity Веб JS Рекомендуется включить эту опцию для новых проектов, которые не используют старые несовместимые плагины. JavaScript плагины, и отключить его, если вы используете .jslib файлы, которые зависят от старого dynCall() механизм.
Примечание: WebAssembly.Table не является обратно совместимым. WebAssembly.Table, используйте Emscripten Runtime функция getWasmTableEntry(functionPtr) для преобразования указателя функции в вызываемый JS функции, или Emscripten шаблон кода {{{ makeDynCall('sig', 'variableName') }}}(...args); для выполнения вызова указателя функции. Emscripten семейство функций времени выполнения dynCall_sig(ptr, ...args); больше не поддерживается WebAssembly.Table. Примеры кодов см. в Emscripten документация.
Включить BigInt Включите эту опцию, чтобы ориентироваться на функцию языка WebAssembly.BigInt и использовать тип BigInt в WebAssembly, что приведет к ускорению времени сборки и немного меньшему размеру кода. Когда эта опция отключена, тип BigInt недоступен в WebAssembly. Сгенерированный код WebAssembly зависит от BigInt ABI для подписей функций, содержащих 64-битные переменные. Отключите эту опцию, если вы хотите ориентироваться на старые браузеры, которые не поддерживают функцию Wasm BigInt. Рекомендуется включить эту опцию для новых проектов, быстрых итераций сборки и отключить ее, если важно обеспечить обратную совместимость с более старыми браузерами.
Примечание: Функция Wasm BigInt требует по крайней мере Chrome 85 (25 августа 2020 г.), Firefox 78 (30 июня 2020 г.), Safari 14.5 (26 апреля 2021 г.) или более новую версию.
Начальный размер памяти Первоначальный размер WASM память кучи в мегабайтах (MB). По умолчанию это значение равняется 32 MB. Если Режим роста памяти установлен на Нет, то это также максимальный размер WASM стековая память.
Режим роста памяти Выберите режим роста для памяти кучи WASM из следующих вариантов. Рекомендуемый вариант: Геометрический.
  • Нет: Память кучи WASM имеет фиксированный размер, настроенный в Начальный Размер Памяти.
  • Линейный: Память кучи WASM увеличивается на фиксированную величину, настроенную шагом Linear Memory Growth Step.
  • Геометрический: Память кучи WASM увеличивается относительно текущего размера кучи в зависимости от фактора, настроенного в Этапе Роста Геометрической Памяти и Максимальном Росте Геометрической Памяти.
Максимальный размер памяти Максимальный размер памяти кучи WASM в MB. По умолчанию, это установлено на 2048 MB, что является рекомендуемым параметром. Вы можете ввести размер памяти до 4096 MB, но известны ошибки Firefox и Chrome для сборок свыше 2048 MB. Эта опция доступна только для Режим роста памяти Линейный или Геометрический.
Линейный шаг роста памяти Дополнительная опция настройки для управления шагом WASM роста кучи в MB. По умолчанию, это установлено на 16 MB. Шаг роста 16 MB указывает, что куча увеличивается на 16 MB каждый раз, когда ей нужно расти. Доступно только если Memory Growth Mode установлено на Линейный.
Шаг роста геометрической памяти Расширенная опция настройки для управления коэффициентом роста кучи WASM относительно текущего размера кучи. По умолчанию этот коэффициент установлен на 0.2. Коэффициент роста 0.2 означает, что размер кучи увеличивается на 0.2 * currentHeapSize каждый раз, когда куча должна расти. Доступно только если Memory Growth Mode установлен на Геометрический.
Геометрическая память капа роста (MB) Расширенная опция настройки для управления верхним пределом для шага роста кучи в MB. По умолчанию, это установлено на 96 MB. Максимальный рост 96МБ означает, что размер кучи увеличивается максимум на 96 MB. Доступно только если Memory Growth Mode установлено на Геометрический.
Включить совместимость с подмодулями Если включено, создает сборку, которая может быть использована с функцией удаления подмодулей пакета Web Stripping Tool. Если отключено, создает сборку, которая не предназначена для удаления подмодулей. Лучше всего оставить эту опцию отключенной, когда пакет Web Stripping Tool не используется, так как это может негативно повлиять на размер генерируемого кода.

Показать параметр диагностического наложения

Чтобы оптимизировать веб-сборку и диагностировать потенциальные проблемы, вы можете просмотреть диагностические данные (в настоящее время ограниченные использованием памяти), включив этот параметр. После включения на сборки появляется значок, который отображает накладку с данными о сборки. Он доступен как для разработки, так и для выпуска сборок.

  1. Чтобы просмотреть диагностические данные, включите параметр Show Diagnostic Overlay в окне Настройки проигрывателя (File > Build Profiles > Player Settings > Publishing Settings).

    На рабочем столе значок Диагностика отображается в нижней части веб-панели:

    Кнопка диагностики в нижней части полотна
    Кнопка диагностики в нижней части полотна

    На мобильном устройстве значок Диагностика отображается в правом нижнем углу экрана:

    Телефон Android с кнопкой диагностики
    Телефон Android с кнопкой диагностики
  2. Щелкните значок Диагностика. Появится накладка, показывающая память JavaScript, которая далее разбивается, чтобы отобразить использование памяти кучи WASM:

Накладка Диагностика показывает распределение памяти JavaScript и использование памяти кучи WASM
Накладка Диагностика показывает распределение памяти JavaScript и использование памяти кучи WASM

На накладном экране отображаются следующие диагностические данные:

Свойство Функция
Итого 2010 год JS Память Текущий размер кучи JavaScript (JS), включая неиспользуемую память, не выделенную для объектов JS, в мегабайтах.
  • Использованная JS Память: Память, используемая объектами JS в мегабайтах.
Всего WASM памяти стека Линейная память, представляющая всю кучу движка C/C++ Unity, который компилируется с Emscripten, включая нераспределенную память в мегабайтах.
  • Использованная куча WASM: Пространство кучи WASM, которое выделено в мегабайтах.
Время загрузки страницы до первого кадра Общее время от начала загрузки страницы до завершения отображения первого кадра приложения в миллисекундах.
  • Page Load Time: Время, затрачиваемое с момента загрузки страницы до начала отображения первого кадра, включая загрузку, компиляцию, анализ и основное приложение, в миллисекундах.
  • Время загрузки кода: Время, затрачиваемое сборкой на загрузку файла кода в миллисекундах.
  • Время загрузки ассета file(.data): Время, затрачиваемое сборкой на загрузку двоичного файла .data, в миллисекундах.
  • Время запуска WebAssembly: время между загрузкой JavaScript-фреймворка и достижением функции C++ main() в Unity. Оно примерно соответствует времени компиляции WASM и измеряется в миллисекундах.
  • Game время запуска: время в миллисекундах, необходимое функции main() на C++ в Unity, чтобы завершить выполнение до первого основного кадра, который обычно включает загрузку первой игровой сцены.
Средний FPS (10 с) Средняя скорость последних 10 кадров в секунду.
  • Текущие кадры в секунду: Количество кадров, отображаемых на экране в секунду.
Число каркасных стендов Число отображаемых кадров, выполнение которых заняло необычно много времени по сравнению с предыдущими кадрами.

Важное примечание о JS Память

Информация о памяти JS получается с помощью performance.memory API, который в настоящее время поддерживается только в Chrome или Edge. Нет других APIs доступных, которые возвращают эту информацию для Safari или Firefox.

Примечание: API performance.memory не поддерживается на устройствах iOS.

В браузерах, где API не поддерживается, появляется сообщение N/A.

Сообщение N/A появляется на браузерах, которые не поддерживают performance.memory API
В браузерах, не поддерживающих performance.memory API, появляется сообщение N/A

Дополнительные ресурсы:

PlayerSettingsWebGL