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

Переменные веб-шаблона

Во время процесса сборки Unity предварительно обрабатывает файлы шаблона и оценивает все макросы и условные директивы, включенные в эти файлы. В рамках этого процесса Unity находит и заменяет все макросы на значения, предоставленные Unity Editor. Unity автоматически предварительно обрабатывает все файлы .html, .php, .css, .js и .json в папке шаблона.

Внутренние переменные препроцессора

Перечисленные ниже внутренние переменные препроцессора ссылаются на данные проекта, и Unity подставляет их значения при сборке в соответствии с тем, что даёт редактор. Эти внутренние переменные можно использовать в макросах JavaScript и условных директивах.

Переменная Тип Описание
COMPANY_NAME Струна Название компании, определенное в настройках игрока.
PRODUCT_NAME Струна Название продукта, определенное в настройках плеера.
PRODUCT_VERSION Струна Версия, определенная в Настройках Игрока.
WIDTH Цифры Ширина по умолчанию Canvas определяется в Настройках Проигрывателя > Разрешение и представление.
HEIGHT Цифры Высота по умолчанию Canvas в Настройках Проигрывателя > Разрешение и Представление.
SPLASH_SCREEN_STYLE Струна Этот параметр устанавливается на значение "Темный", если в настройках стиля Splash Player > Splash Image установлено значение "Светлый на темном", в противном случае он устанавливается на значение "Светлый".
BACKGROUND_COLOR Струна Представляет собой цвет фона, определенный в виде шестнадцатеричной тройки.
UNITY_VERSION Струна Версия Unity.
DEVELOPMENT_PLAYER Булева функция Этот параметр устанавливается в значение true, если включена опция Разработка сборки.
DECOMPRESSION_FALLBACK Струна В зависимости от используемого метода сжатия и типа декомпрессора, включённого в сборку, эта переменная имеет значение Gzip или Brotli. Если ни одно из этих значений не указано, переменная имеет значение пустой строки.
USE_WASM Булева функция Этот параметр устанавливается в true, если текущая сборка является сборкой WebAssembly.
USE_THREADS Булева функция Этот параметр устанавливается в true, если текущая сборка использует потоки.
USE_WEBGL_1_0 Булева функция Это установлено на true, если текущая сборка поддерживает WebGL1.0 графики API.
USE_WEBGL_2_0 Булева функция Это установлено на true, если текущая сборка поддерживает WebGL2.0 графики API.
USE_DATA_CACHING Булева функция Это значение устанавливается в true, если текущая сборка использует indexedDB кэширование для загружаемых файлов.
LOADER_FILENAME Струна Этот параметр устанавливается на имя файла скрипта загрузчика сборки.
DATA_FILENAME Струна Этот параметр устанавливается на имя файла главного файла данных.
FRAMEWORK_FILENAME Струна Этот параметр устанавливается на имя файла скрипта структуры построения.
CODE_FILENAME Струна Этот параметр устанавливается на имя файла WebAssembly модуль, когда текущая сборка является WebAssembly build, в противном случае он устанавливается на имя файла asm.js модуль.
MEMORY_FILENAME Струна Этот параметр устанавливается на имя файла памяти, когда память хранится во внешнем файле, в противном случае он устанавливается на пустую строку.
SYMBOLS_FILENAME Струна Этот параметр устанавливается на имя файла JSON, содержащего символы отладки, если текущая сборка использует символы отладки, в противном случае он устанавливается на пустую строку.
BACKGROUND_FILENAME Струна Этот параметр устанавливается на имя файла фонового изображения, когда фоновое изображение выбрано в Настройки плеера > Сплайс-изображение, в противном случае он устанавливается на пустую строку.

JavaScript макросы

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

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

Следующая примерная строка взята из файла index.html, используемого в шаблоне по умолчанию:

<div id="unity-build-title">{{{ PRODUCT_NAME }}}</div>

Если значение Название продукта в настройках проигрывателя установлен на My WebGL Game, внутренняя переменная препроцессора PRODUCT_NAME имеет значение My WebGL Game. В выходе index.html файл, строка выглядит следующим образом:

<div id="unity-build-title">My WebGL Game</div>

Ниже приведен более сложный пример из того же файла шаблона index.html:

canvas.style.background = "url('" + buildUrl + "/{{{ BACKGROUND_FILENAME.replace(/'/g, '%27') }}}') center / cover";

Если вызвана целевая папка сборки Let’s try WebGL, и если вы выберете фоновое изображение в Player Settings, внутренняя переменная препроцессора BACKGROUND_FILENAME имеет значение Let’s try WebGL.jpg. В выходе index.html файл, строка изменяется на:

canvas.style.background = "url('" + buildUrl + "/Let%27s try WebGL.jpg') center / cover";

Условные директивы

Условные директивы Если, #другие, и Конец контроля, если Unity включает определенную часть предварительно обработанного файла в выходной файл или отбрасывает его для текущей сборки.

Код, начинающийся с Если и заканчивается Конец Директива называется условной группой. Условные группы могут также включать #другие руководящие принципы. Unity оценивает выражение, написанное после Если как JavaScript выражение. Если это выражение имеет истинное значение, которое переводится в true при оценке в булевом контексте, то Unity сохраняет группу строк, следующую непосредственно за Если директивы в выходном файле. Если Если выражение является ложным, и #другие директива включена в условную группу, Unity сохраняет группу строк, следующую непосредственно за #другие Пример условной группы выглядит следующим образом:

#if EXPRESSION
  // this block is included in the output if EXPRESSION has a truthy value
#else
  // this block is included in the output otherwise
#endif

Оцененные выражения JavaScript могут включать скобки, логические операторы и другие конструкции JavaScript. Условные директивы могут быть вложены.

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