Unity 6.3
0 онлайн 25 гостей 3 в системе
Вход

Структура и экземпляр веб-шаблона

Используйте пользовательские переменные в файле шаблона 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 см. в разделах «Папка веб-сборки» и «Структура и создание экземпляров веб-шаблона».

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