Конфигурация и взаимодействие веб-шаблона
Настройка и взаимодействие с веб-сборками с помощью веб-шаблонов.
Информацию о переменных шаблона, макросах JavaScript и условных директивах см. в Веб-переменные шаблона.
Конфигурация сборки
Объект конфигурации содержит конфигурацию сборки, которая состоит из кода и данных URLs, названия продукта, названия компании и версии. Вы можете определить ее, используя следующий код:
var buildUrl = "Build";
var config = {
dataUrl: buildUrl + "/{{{ DATA_FILENAME }}}",
frameworkUrl: buildUrl + "/{{{ FRAMEWORK_FILENAME }}}",
codeUrl: buildUrl + "/{{{ CODE_FILENAME }}}",
#if MEMORY_FILENAME
memoryUrl: buildUrl + "/{{{ MEMORY_FILENAME }}}",
#endif
#if SYMBOLS_FILENAME
symbolsUrl: buildUrl + "/{{{ SYMBOLS_FILENAME }}}",
#endif
streamingAssetsUrl: "StreamingAssets",
companyName: "{{{ COMPANY_NAME }}}",
productName: "{{{ PRODUCT_NAME }}}",
productVersion: "{{{ PRODUCT_VERSION }}}",
// additional options can go here, see below
};
В приведенном выше примере папка сборки URL хранится как отдельная переменная, называемая buildUrl. Это полезно в случаях, когда вы не знаете взаимосвязи между встраиваемой страницы и папки сборки на сервере хостинга. Это позволяет повторно использовать код встраивания в других HTML документов. Примером использования этой функции является перемещение файла в Build папку в другое место на вашем сервере. Вы можете изменить значение buildUrl переменной на странице встраивания, и вы можете использовать тот же код встраивания. Это также относится к StreamingAssets папка (streamingAssetsUrl).
В дополнение к установке URL и имен полей в сборке, вы можете установить следующие свойства объекта config.
| Свойство | Использование |
|---|---|
matchWebGLToCanvasSize: false |
По умолчанию (если установлено true или отключено), Unity синхронизирует целевой размер отображения WebGL с размером объектной модели документа (DOM) элемента canvas (масштабируется по window.devicePixelRatio). Установите это в false, если вы хотите вручную установить целевой размер отображения DOM и WebGL. |
devicePixelRatio: <number> |
Это поле позволяет применять коэффициент масштабирования DPI для рендируемой страницы. Установите значение 1, чтобы применять коэффициент масштабирования «стандартный DPI» (или не-Retina DPI), что может помочь производительности на мобильных устройствах низкого класса. По умолчанию это поле не установлено, то есть рендируемая страница использует коэффициент масштабирования браузера DPR, что приводит к высокому DPI рендерингу. |
autoSyncPersistentDataPath: true |
Если установлено в true, все записи файлов в каталоге Unity Application.persistentDataPath автоматически сохраняются, так что содержимое запоминается при следующем посещении сайта пользователем. Если не установлено (или установлено в false), необходимо вручную синхронизировать изменения файлов в каталоге Application.persistentDataPath, вызвав функцию JS_FileSystem_Sync() JavaScript. |
Создание взаимодействия
После успешного инстанционирования сборки обратный вызов обработчика выполнения объекта Promise получает в качестве аргумента вновь созданный объект экземпляра Unity. Для взаимодействия со сборкой вызовите следующие методы экземпляра Unity:
| Метод | Использование |
|---|---|
unityInstance.SetFullscreen(fullscreen) |
Метод SetFullscreen переключает полноэкранный режим. Этот метод не возвращает значение. Примечание: Для активации полноэкранного режима необходимо взаимодействие пользователя, например нажатие кнопки или клавиши. Полноэкранный режим не может быть активирован при запуске. — Для активации полноэкранного режима установите аргумент fullscreen на 1. — Для выхода из полноэкранного режима установите аргумент fullscreen на 0. |
unityInstance.SendMessage(objectName, methodName, value) |
Метод SendMessage отправляет сообщения в GameObjects. Этот метод не возвращает значение. - objectName — это имя объекта в вашем Scene. — methodName — это имя метода в скрипте, в настоящее время прикрепленного к этому объекту. - value может быть строкой, числом или пустой. |
unityInstance.Quit().then(onQuit) |
Используйте Quit() метод выхода из режима выполнения и очистки памяти, используемой программой Unity instance. Этот метод возвращает объект Promise. Примечание: Некоторые дополнения браузера мешают возможности сборщика мусора для восстановления Unity содержимое веб-страницы после вызова unityInstance.Quit(). Отключите дополнения браузера для устранения неполадок или обратитесь к документации Mozilla для <iframe>: Элемент Inline Frame для выезда и разгрузки Unity приложения с включенными дополнениями.— onQuit callback вызывается после того, как время выполнения сборки закончилось. |