Table of Contents

Сообщения UI

Во время работы EasyAR Sense Unity Plugin есть три типа сообщений.

  • Исключения времени выполнения, включая Sense Error, Session Error, Error и Warning
  • Session Dump
  • Специальные исключения разработки EasyAR Mega

При необходимости вы можете настроить способ вывода первых двух типов сообщений. Это можно сделать в редакторе через компонент DiagnosticsController на session или в скрипте через интерфейс DiagnosticsController.MessageOutput.

diagnostics ui messages

Совет

В версии 4000, если сцена создана плагином старой версии, при открытии сцены DiagnosticsController автоматически добавляется в session. В некоторых версиях Unity он может не добавляться автоматически; в таких версиях Unity DiagnosticsController будет автоматически создан во время выполнения со значениями по умолчанию.

Исключения времени выполнения

Во время работы плагина некоторые проблемы, обнаруженные внутренними компонентами, иногда поступают в систему в виде сообщений. Некоторые из них могут быть серьезными сбоями, после которых продолжать работу нельзя; некоторые могут быть вызваны намеренно; некоторые могут быть связаны с неподдерживаемым устройством. По уровню серьезности от высокого к низкому они делятся на следующие категории:

  • SenseError: ошибка EasyAR Sense, обычно связана с license EasyAR Sense.
  • SessionError: ошибка ARSession, обычно связана с тем, что устройство не поддерживает некоторые функции, или с неправильной конфигурацией.
  • Error: другая информация об ошибках
  • Warning: предупреждения

Из-за особенностей разработки Unity по умолчанию мы показываем эти сообщения в UI, чтобы помогать разработке.

В редакторе или скрипте можно управлять тем, как эти сообщения отображаются. Доступны следующие режимы вывода:

  • UIAndLog: вывод в UI и в журнал. На гарнитуре отображается на расстоянии 5 метров перед глазами.
  • Log: вывод в системный журнал.
Совет
  • На этапе разработки и тестирования рекомендуется использовать конфигурацию по умолчанию UIAndLog.
  • При выпуске рекомендуется изменить параметр на Log. Можно также оставить UIAndLog, но такие UI-сообщения обычно недружелюбны к конечным пользователям.
  • Перед запуском рекомендуется проверять доступность session и поддержку устройства, а для неподдерживаемых устройств выводить разумную подсказку.

Sense Error

Sense Error является особым типом ошибки. При ее появлении функции EasyAR больше нельзя продолжать использовать. Частые причины:

  • License настроена неверно или проверка не пройдена. Эту ошибку можно восстановить повторной инициализацией с правильной license.
  • На некоторых устройствах, включая AR Foundation, AR Engine, все устройства с пользовательской камерой или различные гарнитуры, пробные продукты, такие как license Personal Edition, пробная XR license или пробный сервис Mega, использовались дольше фиксированного ограниченного времени. Эту ошибку восстановить нельзя.

Session Error

Session Error означает ошибку, из-за которой текущая ARSession не может продолжать работу. Изменение конфигурации и повторный запуск ARSession могут решить эти ошибки. Обычно они возникают из-за неправильной конфигурации, исключения в процессе запуска, из-за которого сборка прерывается, неподдерживаемого текущей конфигурацией ARSession устройства или потери компонента ARSession во время выполнения.

Частые ситуации:

  • Ошибка сборки Session: например, устройство не поддерживается или Frame Source для поддерживаемого устройства неправильно настроен в ARSession.
  • Ошибка запуска Session: неправильная конфигурация cloud service приводит к ошибке создания функции cloud service, либо конфигурация не заполнена, включая сервис Mega, сервис cloud recognition, сервис SpatialMap и т. д.
  • Ошибка во время работы Session: компонент ARSession уничтожен извне, RendererFeature неправильно настроен в среде URP и т. д.

В целом ошибки конфигурации и исключения в процессе запуска, приводящие к прерыванию сборки, должны быть предотвращены на этапе разработки. Неподдерживаемые устройства в основном встречаются в функциях, которым требуется motion tracking. См. Motion tracking и функции EasyAR, чтобы понять, для каких функций важна поддержка устройства, и на этапе разработки выбирайте подходящее устройство для отладки.

Session Dump

Сообщение SessionDump показывает рабочее состояние ARSession, собранное во время работы плагина, включая некоторые ключевые состояния каждого компонента. Эта информация очень полезна для понимания работы EasyAR и анализа проблем.

В редакторе или скрипте можно управлять тем, как эти состояния отображаются. Доступны следующие режимы вывода:

  • UI: отображается в UI и обновляется каждый кадр. На гарнитуре отображается на расстоянии 5 метров перед глазами.
  • Log: вывод в системный журнал. Поскольку вывод выполняется каждый кадр, это влияет на производительность, поэтому рекомендуется использовать при разработке или тестировании.
  • None: не выводить.
Совет
  • На этапе разработки и тестирования рекомендуется использовать конфигурацию по умолчанию UI. Показанная выше информация необходима при общении с сотрудниками EasyAR.
  • После официального запуска рекомендуется изменить режим на None и сохранить программный переключатель для включения UI либо собирать данные через другую систему. При обращении в EasyAR с проблемой EasyAR запросит эту информацию у вас или ваших пользователей, чтобы оценить рабочее состояние приложения.
  • В большинстве случаев, если после запуска у приложения возникают проблемы, сторона приложения сначала должна провести диагностику и анализ. Проблемы легче решаются, когда они отправлены после исключения проблем приложения и сбора достаточной информации. Существует много сторонних SDK и платформ для сбора и анализа журналов, их рекомендуется использовать до запуска. Если у вас нет опыта или ресурсов для таких платформ, сохранение переключателя для включения UI, например скрытого переключателя, чтобы пользователь мог сообщить увиденную информацию, является сравнительно простым решением.

Специальные исключения разработки EasyAR Mega

В разработке Mega есть еще один тип неконтролируемых предупреждений. Эти сообщения будут отображаться в UI при выполнении определенных условий конфигурации, и разработчик не может закрыть их напрямую.

Рекомендуется обращать внимание на само сообщение: в тексте указаны причина появления и способ настройки. Разработчику нужно понимать требования разных конфигураций к разным способам использования и разумно выбирать их по мере разработки.

Эти сообщения выводятся намеренно, потому что при определенных условиях использования соответствующие функции помогают разработке процесса контента, но при этом не могут дать разумный результат выполнения. Не выводите такие сообщения в релиз.

Связанные темы