Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Обнаружение и активация подсистем во время выполнения

Добавьте в свой проект следующий скрипт, чтобы сканировать и создать или запустить подсистему дисплея с id Display0. Вы можете изменить переменную match, если хотите загрузить другие подсистемы отображения:

using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Experimental.XR; using UnityEngine.XR; public class Display : MonoBehaviour { public string match = "Display0"; // Use this for initialization void Start () { List displays = new List(); SubsystemManager.GetSubsystemDescriptors(displays); Debug.Log("Number of display providers found: " + displays.Count); foreach (var d in displays) { Debug.Log("Scanning display id: " + d.id); if (d.id.Contains(match)) { Debug.Log("Creating display " + d.id); XRDisplaySubsystem dispInst = d.Create(); if (dispInst != null) { Debug.Log("Starting display " + d.id); dispInst.Start(); } } } } }

Пакет XR Management представляет собой UI(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. В настоящее время Unity поддерживает три системы пользовательского интерфейса. Подробнее
См. в Словарь
, используемый для настройки загрузки подсистем во время выполнения . Он использует те же базовые API (описанные выше) для создания подсистем и управления ими. Если вы хотите, чтобы ваш провайдер отображался в XRобобщающем термине, охватывающем виртуальную реальность (VR), дополненную реальность (AR) и Приложения смешанной реальности (MR). Устройства, поддерживающие эти формы интерактивных приложений, можно назвать устройствами XR. Подробнее
См. в интерфейсе настроек Словарь
, напишите XRLoader.

Если ваш подключаемый модульНабор кода, созданный вне Unity, который создает функциональные возможности в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. Словарь
не загружается, см. устранение неполадок ниже.

Устранение неполадок при обнаружении подключаемых модулей во время выполнения

Чтобы устранить неполадки при инициализации или запуске поставщика подсистемы, проверьте журнал редактора или журнал вывода проигрывателя на наличие строк, начинающихся с [XR] или [Подсистемы].

Подсистемы в C# не найдены

Если вы только что добавили файл .json и файлы подключаемых модулей, обязательно перезапустите Unity. В настоящее время Unity обнаруживает эти файлы только при запуске. Кроме того, убедитесь, что поставщик использует правильный макет файла.

Ошибки поиска и анализа файла UnitySubsystemsManifest.json

Ошибка Описание
[XR] 3 ‘displays’ descriptors matched in Assets/UnityXRDisplayExample/UnitySubsystemsManifest.json Unity успешно нашла дескрипторы отображения и зарегистрировала три разных id для этого подключаемого модуля.
[XR] No descriptors matched for inputs in Assets/UnityXRDisplayExample/UnitySubsystemsManifest.json. Файл .json не содержит входных дескрипторов. Это нормально, если вы не реализуете подсистему ввода.
Если вы ожидали, что Unity найдет дескрипторы в вашем файле .json, они могли быть искажены. См. документацию по UnitySubsystemsManifest.json, чтобы определить правильный формат.
[XR] Failed to parse json header for Assets/UnityXRDisplayExample/UnitySubsystemsManifest.json (did you forget to include name or libraryName fields?) Вероятно, это означает, что у вас неверный формат файла .json. Пропустите его с помощью инструмента проверки, такого как json linter.

Ошибки при поиске и загрузке подключаемого модуля провайдера

Ошибка Описание
[XR] PluginName failed to register Provider for DisplayId (json name or id doesn’t match?) Это означает, что первые два аргумента RegisterLifecycleProvider не соответствуют файлу .json.
Первый аргумент, pluginName, должен соответствовать полю name в файле .json.
Второй аргумент, id, должен соответствовать полю id подсистемы в файле .json.
[XR] Unable to load plugin PluginName for subsystem DisplayId Не удалось найти ваш подключаемый модуль, он был создан для неправильной архитектуры или в нем отсутствуют зависимостиВ контексте Менеджер пакетов, зависимость – это определенная версия пакета (выраженная в форме имя_пакета@версия_пакета), которая требуется проекту или другому пакету для работы. Проекты и пакеты используют атрибут dependencies в своих манифестах для определения набора требуемых пакетов. Для проектов это считается прямой зависимостью; для пакетов это косвенные или транзитивные зависимости. Подробнее
См. в Словарь
, которые необходимо загрузить. В последнем случае вы можете использовать инструмент Dependency Walker, чтобы узнать, есть ли недостающие зависимости.

Ошибки инициализации провайдера

Ошибка Описание
[XR] Failed to initialize subsystem DisplayId [error: 1] Unity вызвала ваш метод Initialize, но вернула kUnitySubsystemErrorCodeFailure. Дважды проверьте реализацию вашего метода Initialize.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3