Структура и экземпляр веб-шаблона
Используйте пользовательские переменные в файле шаблона index.html и создайте новый экземпляр контента с помощью createUnityInstance().
Информацию о переменных шаблона, макросах JavaScript и условных директивах см. в Веб-переменные шаблона.
Чтобы добавить пользовательский веб-шаблон, см. Добавление пользовательского веб-шаблона.
Пользовательские переменные
При выборе веб-шаблона Unity анализирует шаблон и ищет макросы JavaScript и условные директивы.
Unity рассматривает переменные JavaScript как пользовательские переменные, если они:
- Используется внутри макросов JavaScript и условных директив.
- Не объявлено в коде шаблона.
- Не внутренние переменные препроцессора.
Unity автоматически добавляет эти пользовательские переменные в раздел Разрешение и представление в окне Настройки проигрывателя.
Например, если вы хотите управлять заголовком сгенерированной страницы index.html непосредственно из окна Настройки проигрывателя, вам сначала нужно изменить строку <title> строки index.html в вашем пользовательском шаблоне, примерно так: lang-html
<title>{{{ PAGE_TITLE }}}</title>
После этого перевыберите свой пользовательский шаблон. Это снова проанализирует шаблон, и поле Заголовок страницы появится в разделе Разрешение и представление > Веб шаблон окна Настройки проигрывателя.
Когда вы вводите текст в это поле и создаете свой проект, пользовательская переменная PAGE_TITLE в макросе шаблона автоматически становится текстом в поле Заголовок страницы.
Если вы хотите использовать пользовательские целые или переменные с плавающей запятой в ваших макросах, используйте функции parseInt() или parseFloat() JavaScript в ваших макросах для предварительной обработки строковых значений, предоставленных Unity Editor. Это потому, что пользовательским переменным всегда назначается строковое значение.
Примечание: Символы подчеркивания в именах переменных отображаются как пробелы внутри поля для улучшения читаемости.
Структура файла index.html
index.html содержит код, необходимый для загрузки сборки, и должен включать следующее:
- Элемент
<canvas>. Время выполнения Unity использует элемент<canvas>для отображения приложения. - JavaScript код для загрузки загрузчика сборки. Например:
var buildUrl = "Build";
var loaderUrl = buildUrl + "/{{{ LOADER_FILENAME }}}";
var script = document.createElement("script");
script.src = loaderUrl;
script.onload = () => {
// code for instantiating the build
};
document.body.appendChild(script);`
В этом примере {{{ LOADER_FILENAME }}} автоматически разрешается препроцессором шаблона при создании сборки.
В качестве альтернативы вы можете загрузить загрузчик сборки с помощью тега скрипта, например: lang-js
<script src="Build/{{{ LOADER_FILENAME }}}"></script>
- JavaScript код для инстанционирования сборки. Unity сборки инстанционируются с помощью функции
createUnityInstance(), которая определена в скрипте загрузчика сборки.
Функция экземплярования: createUnityInstance()
Функция createUnityInstance() создает новый экземпляр вашего контента. Вы можете использовать ее следующим образом: lang-js
createUnityInstance(canvas, config, onProgress).then(onSuccess).catch(onError);
Эта функция возвращает объект Promise, где:
| Объект | Использование |
|---|---|
canvas |
Время выполнения Unity использует объект canvas для рендеринга игры. |
config |
Объект config содержит конфигурацию сборки, такую как код и данные URLs, название продукта и компании и версия. Дополнительные сведения об определении конфигурации см. в Конфигурация сборки веб-шаблона и взаимодействие. |
onProgress(progress) {...} |
Веб-загрузчик вызывает объект обратного вызова onProgress каждый раз, когда обновляется прогресс загрузки. Аргумент progress, который приходит с обратным вызовом onProgress, определяет прогресс загрузки как значение между 0.0 и 1.0. |
onSuccess(unityInstance) {...} |
Обратный вызов onSuccess вызывается после успешного инстанционирования сборки. Созданный объект экземпляра Unity предоставляется в качестве аргумента. Этот объект может быть использован для взаимодействия со сборкой. |
onError(message) {...} |
Обратный вызов onError вызывается, если во время создания экземпляра возникает ошибка. В качестве аргумента предоставляется сообщение об ошибке. |
Функция createUnityInstance() определяется в скрипте загрузчика сборки и относится к конкретному созданному экземпляру сборки. Поэтому при встраивании двух или более сборок в один HTML-документ убедитесь, что функция createUnityInstance() вызывается из обратного вызова onload соответствующего скрипта загрузчика сборки. Дополнительные сведения о Unity Web Loader см. в разделах «Папка веб-сборки» и «Структура и создание экземпляров веб-шаблона».