IDE и отладка
IDE и отладка
Приостанавливайте выполнение с помощью Debug.Break Если приложение сложно приостановить вручную, а вам нужно проверить определённые значения в Inspector, вызовите Debug.Break, чтобы остановить выполнение в нужном месте кода.
Заменяйте проверку if вызовом Debug.Assert Debug.Assert проверяет условие во время выполнения и выводит сообщение об ошибке в Console, если условие возвращает false. В отличие от Debug.Log, который выполняется всегда, утверждения предназначены для выявления неожиданных состояний и помогают эффективнее проверять предположения, заложенные в коде.
// You can save the if statement in release... if (health > maxhealth) {
Debug.LogError(“Current health is greater than maxhealth!”, this);
}
//... by
using an assertion Debug.Assert(health < maxhealth, “Current health is greater than maxhealth!”, this);©2025UnityTechnologies
Используйте Debug.Log с контекстом При вызове Debug.Log вторым параметром можно передать объект - обычно GameObject или компонент. Тогда сообщение журнала связывается с этим объектом в Console: если щёлкнуть по сообщению, Unity выделит соответствующий объект в Hierarchy. Debug.Log(“Enemy spawned”, gameObject);
Выделяйте важные сообщения с помощью Rich Text Console в Unity поддерживает в сообщениях Debug.Log часть тегов Rich Text, например <b>, <i> и <color>. С их помощью можно выделять, окрашивать или подчёркивать отдельные фрагменты вывода журнала, чтобы важные сообщения были заметнее во время разработки. Debug.Log(“<b><color=red>Error:</color></b> Player health is critically low!”);Удаляйте вызовы Debug.Log из релизных билдов Unity не удаляет API журналирования Debug из билдов, не являющихся Development Build, автоматически. Оберните вызовы Debug.Log в собственные методы и пометьте их атрибутом [Conditional]. Если удалить соответствующий Scripting Define Symbol из Player Settings, все вызовы Debug.Log будут исключены при компиляции. Результат такой же, как при оборачивании вызовов в блоки препроцессора #if… #endif. Пример приведён в руководстве по общей оптимизации.
Диагностируйте физику, визуализируя raycast-запросы Возникли проблемы с физикой? Debug.DrawLine и Debug.DrawRay помогут визуализировать raycast-запросы, рисуя линию между заданными начальной и конечной точками.
// draw a 5-unit white line from the origin for 2.5 seconds Debug.DrawLine(Vector3.zero, new Vector3(5, 0, 0), Color. white, 2.5f);
}©2025UnityTechnologies
Используйте Debug.isDebugBuild для Development Build С помощью Debug.isDebugBuild можно проверить, запущено ли приложение как Development Build. Это позволяет условно выполнять код, предназначенный только для отладки, - журналирование, диагностику или тестовые утилиты - не затрагивая релизные билды. if (Debug.isDebugBuild) { Debug.Log(“Running in Development Build mode.”); }
Настройте Application.SetStackTraceLogType Используйте Application.SetStackTraceLogType или соответствующие флажки в PlayerSettings, чтобы определить, для каких типов сообщений журнала следует добавлять трассировку стека. Трассировка стека полезна, но работает медленно и создаёт мусор.
Настройки Stack Trace в PlayerSettings окна Editor
Настройте журналирование под свои задачи API Logger позволяет создавать и настраивать собственные экземпляры Logger для более сложного или модульного журналирования. Можно пользоваться встроенным Debug.unityLogger, однако собственный логгер даёт более точный контроль над форматированием, фильтрацией и каналами вывода: var logger = new Logger(Debug.unityLogger.logHandler);
logger.Log(LogType.Log, “Custom log message”);Ускорьте работу с помощью сочетаний клавиш Visual Studio Code Если вы выбрали Visual Studio Code в качестве IDE, вам могут пригодиться следующие сочетания клавиш:
Windows
Mac
©2025UnityTechnologies
Настройте Console Log Entry для удобства чтения По умолчанию Console Log Entry отображает две строки. Чтобы сделать вывод удобнее, можно выбрать одну или несколько строк в соответствии со своими предпочтениями (см. изображение ниже).
Параметры Console Log Entry позволяют задать количество строк в сообщении журнала.
Дополнительные материалы - Отладка игрового кода с помощью Roslyn Analyzers - Запуск автоматизированных тестов для игр с помощью Unity Test Framework - Ускорение процесса отладки с помощью Microsoft Visual Studio Code - Отладка кода с помощью Microsoft Visual Studio 2022 - Советы по тестированию и обеспечению качества проектов Unity
©2025UnityTechnologies