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

Конфигурация и взаимодействие веб-шаблона

Настройка и взаимодействие с веб-сборками с помощью веб-шаблонов.

Информацию о переменных шаблона, макросах 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 вызывается после того, как время выполнения сборки закончилось.

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