Unity 6.3
0 онлайн 78 гостей 3 в системе
Вход
Программирование в Unity Шаг 203 из 210

Логирование стека

Unity Сообщения консоли и файлы журнала могут содержать подробную информацию о трассировке стека. Консоль также содержит ссылку на строку кода, которая генерировала сообщение. Это полезно, когда требуется определить строку, метод или последовательность вызовов функций, которые вызвали появление записи журнала.

Совет: Еще один способ проверки вашего кода — это подключение отладчика к Редактору или вашему встроенному проигрывателю.

Трассировка стека для управляемого и неуправляемого кода

Unity может предоставить информацию о трассировке стека как для управляемого, так и для неуправляемого кода:

  • Управляемый код: Управляемые скрипты DLLs или C#, запущенные в Unity. Это могут быть скрипты, поставляемые с Unity, пользовательские скрипты, написанные пользователем, сторонние скрипты, включенные в модуль хранилища ассетов, или любой другой скрипт C#, запущенный в движке.

  • Неуправляемый код: Коренной код движка Unity или код из коренного плагина, работающего непосредственно на вашей машине или на целевой платформе сборки. Неуправляемый код обычно компилируется из кода C или C++. Вы можете получить к нему доступ только в том случае, если у вас есть оригинальный исходный код коренного двоичного файла. Обычно вы будете использовать стековый трек для неуправляемого кода только в том случае, если вам нужно определить, вызвана ли ошибка вашим кодом или кодом движка, и какая часть кода двигателя.

Unity предлагает три варианта трассировки стека:

  • Нет: Unity не выводит информацию о трассировке стека.
  • ScriptOnly: Unity выводит информацию о трассировке стека только для управляемого кода. Это параметр по умолчанию.
  • Full: Unity выводит информацию о трассировке стека как для управляемого, так и для неуправляемого кода.

Вы можете установить каждый из этих параметров трассировки стек независимо для каждого тип сообщения журнала: Ошибка, Утверждение, Предупреждение, Журнал и Исключение.

Потребности в ресурсах для отслеживания стека

Разрешение трассировки стека, особенно полной трассировки стека, является ресурсоемкой операцией. Ниже приведены некоторые рекомендованные методы для трассировки стека.

  • Используйте трассировку стека только для отладки. Не развертывайте приложение для пользователей, у которых включена трассировка стека.
  • Ограничьте типы сообщений, отображающих трассировку стека. Например, следует использовать трассировку стека только для исключений и предупреждений.

Установка типа трассировки стека

Параметр трассировки стека можно настроить следующим образом:

  • Из Окно консоли меню:
    • Чтобы выбрать параметр трассировки стека для всех типов сообщений журнала, перейдите в Журналирование трассировки стека > Все и выберите параметр трассировки стека для всех типов сообщений журнала.
    • Чтобы выбрать параметр трассировки стека для одного типа сообщения журнала, перейдите в Журналирование трассировки стека > [MESSAGE TYPE] и выберите параметр трассировки стека для данного типа сообщения журнала.
  • Из Окно настроек игрока:
    • Перейдите в Изменить > Project Настройки > Игрок > Другие настройки.
    • В разделе Trace Stackиспользуйте флажки для установки параметра стека для различных типов сообщений журнала.
  • Из кода, используя метод Application.SetStackTraceLogType.
Параметры журналирования трассировки стеков из Консоли. В этом примере показаны параметры для Исключения.
Параметры журналирования трассировки стеков из Консоли. В этом примере показаны параметры для Исключения.

Примечание: Изменения в параметрах стека отслеживания вступают в силу немедленно в Редакторе, но вы должны перестроить приложение для того, чтобы изменения вступили в силу в встроенном Проигрывателе.

Файлы с открытым исходным кодом из вывода трассировки стека

Полный текст сообщения содержит ссылки на конкретные строки в файлах кода со ссылками. Нажмите на любую ссылку, чтобы открыть файл в вашем IDE в строке со ссылкой.

Найти файл журнала вывода компилированного приложения

Созданные приложения не выводят данные в Консоль. Чтобы увидеть трассировку стека, использует файл журнала приложения.

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