Настройки веб-плеера
Использование Игрок настройки знать, как Unity сборки и отображает ваше окончательное веб-приложение. Для описания общего Игрок настройки, см. Игрок настройки.
Примечание: Платформа Facebook Мгновенные игры использует эти настройки.
Чтобы получить доступ к настройкам Web Player:
- Из главного меню Unity перейдите в Изменить > Project Настройки > Игрок. Появится окно настроек Игрок.
- Выберите вкладку Веб, чтобы просмотреть настройки Веб-плеера.
Документацию по свойствам можно найти в следующих разделах:
Примечание: Несмотря на то, что панель Иконы появляется в настройках Веб Игрок, настройки значков недоступны, так как Веб-игры не используют значки.
Дополнительные сведения о Web Параметры публикации, см. Создание веб-сайта и его эксплуатация.
Разрешение и представление
Используйте раздел Разрешение и представление для настройки аспектов внешнего вида экрана в разделе Разрешение.
Резолюция
Вы можете настроить режим экрана и размер по умолчанию элемента Веб-панно, изменив следующие параметры:
| Настройка | Функция |
|---|---|
| По умолчанию Canvas Ширина | Устанавливает ширину элемента Web Canvas. |
| По умолчанию Canvas Высота | Устанавливает высоту элемента Web Canvas. |
| Запуск в фоновом режиме | Включите эту опцию, чтобы разрешить содержимому продолжать работать, когда холст или окно браузера теряют фокус. |
Шаблон веб-сайта
Выберите шаблон для использования в вашем веб-сайте Project:
- Страница Страница по умолчанию представляет собой простую белую страницу с полосой загрузки на сером холсте.
- Страница Минимальная содержит только необходимый шаблонный код для запуска веб-содержимого.
- Страница PWA содержит Progressive Web App, включая файл веб-манифеста и код сервис-воркера.
Вы можете использовать свой собственный шаблон для запуска игры в среде, похожей на окружающую окружающую среду завершенной игры, используя инструкции в Шаблоны веб-сайтов.
Изображение Splash
Используйте Виртуальная реальность Спласс изображения настройка, чтобы выбрать пользовательский splash изображение для XR Для получения информации о общих настройках экрана запуска, см. Экран запуска.
Другие настройки
Этот раздел позволяет настроить ряд параметров, которые распределены по следующим группам:
Рендеринг
Используйте эти настройки, чтобы настроить, как Unity отображает вашу игру для веб-платформы.
| Настройка | Функция |
|---|---|
| Цветовое пространство | Выберите цветовое пространство, которое будет использоваться для отображения. Дополнительные сведения см. в Цветовые пространства.
|
| Автографика 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.
|
| API Совместимость | Выберите, какие .NET APIs можно использовать в вашем проекте. Эта настройка может повлиять на совместимость со сторонними библиотеками. Однако она не влияет на код, специфичный для Редактора (код в каталоге Редактора или в определении сборки, специфическом для Редактора). Тип: Если у вас возникают проблемы с сборкой стороннего производителя, вы можете попробовать предложение в API Совместимость раздел.
|
| Уровень совместимости сборок редактора | Выберите .NET APIs для использования в сборках Редактора.
|
| IL2CPP Генерация кодов | Определяет, как Unity управляет генерацией кода IL2CPP. Примечание: Чтобы использовать это, установите Scripting Backend на IL2CPP. |
| C++ Конфигурация компилятора | Выберите конфигурацию компилятора C++, используемую при компиляции кода, генерируемого IL2CPP.
|
| Используйте постепенно GC | Использует инкрементальный сборщик мусора, который распределяет сбор мусора по нескольким кадрам, чтобы уменьшить связанные с сбором мусора пики в длительности кадра. Дополнительные сведения см. в Автоматическое управление памятью. |
| Разрешить загрузку через HTTP | Указать, разрешать ли загрузку контента через HTTP. По умолчанию Не разрешено из-за рекомендуемого протокола HTTPS, который более безопасен.
|
| Активная обработка ввода | Выберите способ обработки ввода пользователей.
|
Загрузка варианта шейдера
Используйте эти параметры для управления объемом памяти, используемой шейдерами во время выполнения.
| Свойство | Описание |
|---|---|
| Размер блока по умолчанию (MB) | Задает максимальный размер сжатых блоков данных вариантов шейдера Unity, хранящихся в созданном приложении для всех платформ. По умолчанию это 16. Дополнительные сведения см. в Загрузка шейдера. |
| Количество кусков по умолчанию | Устанавливается ограничение по умолчанию на количество разсжатых кусочков, которые Unity хранит в памяти на всех платформах. По умолчанию 0, что означает, что ограничения нет. |
| Переопределение | Разрешает переопределение Размер куска по умолчанию и Количество куска по умолчанию для этой цели сборки. |
| Размер куска (MB) | Переопределяет значение Размер блока по умолчанию (MB) для этой цели сборки. |
| Количество кусочков | Переопределяет значение Количество блоков по умолчанию на этой цели сборки. |
API Совместимость
Вы можете выбрать уровень совместимости моно API для всех целей. Иногда сторонняя библиотека .NET использует функциональность, которая находится за пределами вашего уровня совместимости .NET. Чтобы понять, что происходит в таких случаях, и как лучше всего это исправить, попробуйте выполнить следующие предложения:
- Установка ILSpy для Windows.
- Перетащите сборки .NET для уровня совместимости API, с которым у вас возникли проблемы, в ILSpy. Проблемные файлы можно найти в
Frameworks/Mono/lib/mono/YOURSUBSET/. - Перетащите в стороннюю сборку.
- Щелкните правой кнопкой мыши стороннюю сборку и выберите Анализ.
- В отчете об анализе осмотрите Зависит от Отчет выделяет все, что зависит от сборки сторонней стороны, но это не доступно в разделе .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.
|
| Включить Внутренний 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, предоставляемых браузером. Некоторые браузеры могут реализовать ограничения вокруг этого, например, запрашивать у пользователя разрешение на кэширование данных сверх определенного размера. |
| Символы отладки | Выберите один из доступных параметров, чтобы указать, как символы отладки будут добавляться в сборку.
|
| Резервный режим декомпрессии | Включить резервный код декомпрессии для файлов сборки в загрузчике. Используйте этот параметр, если невозможно настроить заголовки ответов сервера в соответствии с выбранным методом сжатия. |
| Предпочтение питания | Устанавливает предпочтение, для которого GPU будет использоваться при отображении на устройстве с несколькими GPU. Обратите внимание, что браузер может игнорировать это предпочтение.
|
WebAssembly Языковые характеристики
Используйте этот раздел для настройки возможностей языка WebAssembly для вашего веб-приложения.
| Свойство | Описание |
|---|---|
| Включить исключения | Выберите способ обработки неожиданного поведения кода (обычно рассматриваемого как ошибка) во время выполнения.
|
| Включить 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 в 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 не используется, так как это может негативно повлиять на размер генерируемого кода. |
Показать параметр диагностического наложения
Чтобы оптимизировать веб-сборку и диагностировать потенциальные проблемы, вы можете просмотреть диагностические данные (в настоящее время ограниченные использованием памяти), включив этот параметр. После включения на сборки появляется значок, который отображает накладку с данными о сборки. Он доступен как для разработки, так и для выпуска сборок.
-
Чтобы просмотреть диагностические данные, включите параметр Show Diagnostic Overlay в окне Настройки проигрывателя (File > Build Profiles > Player Settings > Publishing Settings).
На рабочем столе значок Диагностика отображается в нижней части веб-панели:
Кнопка диагностики в нижней части полотна На мобильном устройстве значок Диагностика отображается в правом нижнем углу экрана:
Телефон Android с кнопкой диагностики Щелкните значок Диагностика. Появится накладка, показывающая память JavaScript, которая далее разбивается, чтобы отобразить использование памяти кучи WASM:
На накладном экране отображаются следующие диагностические данные:
| Свойство | Функция |
|---|---|
| Итого 2010 год JS Память | Текущий размер кучи JavaScript (JS), включая неиспользуемую память, не выделенную для объектов JS, в мегабайтах.
|
| Всего WASM памяти стека | Линейная память, представляющая всю кучу движка C/C++ Unity, который компилируется с Emscripten, включая нераспределенную память в мегабайтах.
|
| Время загрузки страницы до первого кадра | Общее время от начала загрузки страницы до завершения отображения первого кадра приложения в миллисекундах.
|
| Средний FPS (10 с) | Средняя скорость последних 10 кадров в секунду.
|
| Число каркасных стендов | Число отображаемых кадров, выполнение которых заняло необычно много времени по сравнению с предыдущими кадрами. |
Важное примечание о JS Память
Информация о памяти JS получается с помощью performance.memory API, который в настоящее время поддерживается только в Chrome или Edge. Нет других APIs доступных, которые возвращают эту информацию для Safari или Firefox.
Примечание: API performance.memory не поддерживается на устройствах iOS.
В браузерах, где API не поддерживается, появляется сообщение N/A.
Дополнительные ресурсы:
PlayerSettingsWebGL