Панель Отладчика
Многие инструменты отладки Godot, включая отладчик, находятся на панели отладчика в нижней части экрана. Чтобы открыть её, нажмите Debugger.
Панель отладчика разделена на несколько вкладок, каждая из которых предназначена для определенной задачи.
Трассировка стека
Вкладка Stack Trace открывается автоматически, когда компилятор GDScript достигает breakpoint в вашем коде.
Он предоставляет трассировку стека, информацию о состоянии объекта и кнопки для управления выполнением программы. Когда отладчик останавливается на точке останова, в области редактора скриптов появляется зелёная треугольная стрелка. Эта стрелка указывает строку кода, на которой отладчик остановился.
Совет
Вы можете создать breakpoint (точку останова), щёлкнув по полю в левой части редактора скриптов (слева от номеров строк). При наведении указателя мыши на это поле появляется прозрачная красная точка, которая после установки breakpoint щелчком мыши становится непрозрачной. Щёлкните по красной точке ещё раз, чтобы удалить breakpoint. Созданные таким образом breakpoint сохраняются после перезапуска редактора, даже если скрипт не был сохранён при выходе из него.
Вы также можете использовать ключевое слово breakpoint в GDScript для создания breakpoint, которая будет храниться в самом скрипте. В отличие от точек останова, создаваемых щелчком мыши в поле, эта точка останова, основанная на ключевом слове, сохраняется на разных машинах при использовании системы контроля версий.
Вы можете использовать кнопки в правом верхнем углу, чтобы:
Пропускайте все точки останова. Таким образом, вы сможете сохранить точки останова для будущих сеансов отладки.
Скопировать текущее сообщение об ошибке.
Step Into кода. Эта кнопка переносит вас на следующую строку кода, а если это функция, она выполняет пошаговое выполнение функции.
Step Over по коду. Эта кнопка переходит к следующей строке кода, но не выполняет построчный переход по функциям.
Break. Эта кнопка приостанавливает выполнение игры.
Продолжить. Эта кнопка возобновляет игру после остановки или паузы.
Примечание
Использование отладчика и точек останова в tool scripts в настоящее время не поддерживается. Точки останова, установленные в редакторе скриптов или с помощью ключевого слова breakpoint, игнорируются. Вместо этого можно использовать операторы print для отображения содержимого переменных.
Ошибки
Здесь выводятся сообщения об ошибках и предупреждения во время работы игры.
Вы можете отключить определенные предупреждения в Project Settings > Debug > GDScript.
Оценщик
Эта вкладка содержит средство оценки выражений, также известное как REPL. Это более мощное дополнение к дереву переменных стека, доступному на вкладке Stack Trace.
Если проект прерывается в отладчике (из-за точки останова или ошибки скрипта), вы можете ввести выражение в текстовое поле вверху. Если проект запущен, поле выражения недоступно для редактирования, поэтому сначала необходимо установить точку останова. Выражения можно сохранять между запусками, сняв флажок Clear on Run, однако они будут потеряны после выхода из редактора.
Выражения вычисляются с помощью Godot's expression language, который позволяет выполнять арифметические действия и вызывать некоторые функции внутри выражения. Выражения могут ссылаться на переменные-члены или локальные переменные в той же области действия, что и строка, на которой установлена точка останова. Вы также можете вводить константные значения, что позволяет использовать его как встроенный калькулятор.
Рассмотрим следующий скрипт:
var counter = 0
func _process(delta):
counter += 1
if counter == 5:
var text = "Some text"
breakpoint
elif counter >= 6:
var other_text = "Some other text"
breakpoint
Если отладчик останавливается на первой строке, содержащей breakpoint, следующие выражения возвращают ненулевые значения:
Константное выражение:
2 * ПИ + 5Переменная-член:
counter,counter ** 2,sqrt(counter)Локальная переменная или параметр функции:
delta,text,text.to_upper()
Если отладчик останавливается на второй строке, содержащей breakpoint, следующие выражения возвращают ненулевые значения:
Константное выражение:
2 * ПИ + 5Переменная-член:
counter,counter ** 2,sqrt(counter)Локальная переменная или параметр функции:
delta,other_text,other_text.to_upper()
Профилировщик
Профилировщик используется для просмотра того, какой код выполняется во время использования вашего проекта, и как это влияет на производительность.
См. также
Подробное объяснение того, как использовать профилировщик, можно найти на специальной странице The Profiler.
Visual Profiler
Visual Profiler можно использовать для отслеживания процессов, которые занимают больше всего времени при рендеринге кадра на центральном и графическом процессорах соответственно. Это позволяет отслеживать источники потенциальных узких мест, связанных с рендерингом, в производительности центрального и графического процессоров.
Предупреждение
Visual Profiler измеряет только время ЦП, затрачиваемое на задачи рендеринга, такие как выполнение вызовов отрисовки. Visual Profiler не учитывает время ЦП, затрачиваемое на другие задачи, такие как написание скриптов и физика. Используйте стандартную вкладку Profiler для отслеживания задач ЦП, не связанных с рендерингом.
Чтобы использовать визуальный профилировщик, запустите проект, перейдите на вкладку Visual Profiler на нижней панели Debugger, затем нажмите Start:
Вкладка Visual Profiler после нажатия кнопки Start, подождите несколько секунд, затем нажмите кнопку Stop
Совет
Вы также можете установить флажок Autostart, чтобы визуальный профилировщик автоматически запускался при следующем запуске проекта. Обратите внимание, что состояние флажка Autostart не сохраняется между сеансами редактирования.
Во время работы профилировщика вы увидите категории и результаты. Также появятся графики: слева — график производительности центрального процессора, справа — график производительности графического процессора.
Нажмите кнопку Stop, чтобы завершить профилирование. Результаты останутся видимыми, но не будут зафиксированы. Результаты останутся видимыми после остановки запущенного проекта, но не после выхода из редактора.
Щёлкните по категориям результатов слева, чтобы выделить их на графиках CPU и GPU справа. Вы также можете щёлкнуть по графику, чтобы переместить курсор к номеру кадра и выделить выбранный тип данных в категориях результатов слева.
Вы можете переключать отображение результата между значением времени (в миллисекундах на кадр) или процентом от целевого времени кадра (которое в настоящее время жестко запрограммировано на 16,67 миллисекунд или 60 FPS).
Скачки частоты кадров во время профилирования могут привести к плохому масштабированию графика. Отключите параметр Fit to Frame, чтобы график масштабировался до области с частотой 60 кадров в секунду и выше.
Примечание
Помните, что результаты Visual Profiler могут сильно различаться в зависимости от разрешения области просмотра, которое определяется размером окна, если используются режимы disabled или canvas_items stretch modes.
При сравнении результатов разных запусков ,обязательно используйте одинаковый размер области просмотра для всех запусков.
Visual Profiler поддерживается при использовании любого метода рендеринга (Forward+, Mobile или Compatibility), но сообщаемые категории будут различаться в зависимости от текущего метода рендеринга, а также от включённых графических функций. Например, при использовании Forward+ простая 2D-сцена с источниками света, отбрасывающими тени, приведёт к появлению следующих категорий:
Пример результатов 2D-сцены в Visual Profiler
Приведем еще один пример с Forward+: 3D-сцена с отбрасывающими тени источниками света и различными включенными эффектами приведет к включению следующих категорий:
Примеры результатов 3D-сцены в Visual Profiler
Обратите внимание, что в примере с 3D к названию нескольких категорий добавлено слово (Parallel). Это указывает на параллельное выполнение нескольких задач на графическом процессоре. Как правило, это означает, что отключение только одной из задействованных функций не приведёт к ожидаемому повышению производительности, поскольку остальные задачи по-прежнему необходимо выполнять последовательно.
Примечание
Визуальный профилировщик не поддерживается при использовании рендерера совместимости на macOS из-за ограничений платформы.
Сетевой профайлер
Сетевой профилировщик содержит список всех узлов, взаимодействующих через многопользовательский API, и для каждого из них — счётчики входящих и исходящих сетевых взаимодействий. Он также включает в себя счётчик пропускной способности, отображающий общее использование полосы пропускания в любой момент времени.
Примечание
Измеритель пропускной способности не учитывает собственную систему сжатия API Высокоуровневый мультиплеер. Это означает, что изменение используемого алгоритма сжатия не повлияет на метрики, отображаемые измерителем пропускной способности.
Мониторинг
Мониторы отображают графики различных показателей игры во время её работы, таких как FPS, использование памяти, количество узлов в сцене и многое другое. Все мониторы автоматически отслеживают статистику, поэтому, даже если один из мониторов не открыт во время игры, вы можете открыть его позже и посмотреть, как изменились значения.
См. также
Помимо мониторов производительности по умолчанию вы также можете создавать custom performance monitors для отслеживания произвольных значений в вашем проекте.
Видеопамять
На вкладке Video RAM отображается использование видеопамяти игрой во время её работы. Здесь представлен список всех ресурсов, использующих видеопамять, по пути к ресурсу, типу ресурса, его формату и объёму используемой видеопамяти. В правом верхнем углу панели также отображается общий объём используемой видеопамяти.
Прочее
Вкладка Misc содержит инструменты для определения узлов управления, которые вы щелкаете во время выполнения:
Clicked Control показывает, где в дереве сцены находится выбранный узел.
Clicked Control Type сообщает тип выбранного вами узла.