Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

除錯工具

在螢幕下方的除錯器面板中, 可以找到包括除錯器在內的許多Godot的除錯工具. 點擊 除錯器 即可打開.

../../../_images/overview_debugger.webp

除錯器面板被分成幾個標籤, 每個標籤專注於一個特定的工作.

除錯工具

當 GDScript 編譯器在你的程式碼中達到一個中斷點時,“除錯器”分頁會自動打開。

它給你提供了一個 堆疊追蹤 , 物件的狀態資訊, 以及控制程式執行的按鈕.

小訣竅

您可以透過點選腳本編輯器左側的裝訂線(行號左側)來建立斷點。將滑鼠懸停在該排水溝上時,您會看到出現一個透明的紅點,點擊放置斷點後,該紅點會變成不透明的紅點。再次點選紅點即可刪除斷點。以這種方式建立的斷點在編輯器重新啟動後仍然存在,即使退出編輯器時未儲存腳本也是如此。

You can also use the breakpoint keyword in GDScript to create a breakpoint that is stored in the script itself. Unlike breakpoints created by clicking in the gutter, this keyword-based breakpoint is persistent across different machines when using version control.

你可以使用右上角的按鈕來:

  • 跳過所有中斷點. 這樣一來, 你就可以為將來的除錯會話保存中斷點.

  • 複製目前錯誤消息.

  • 步入 程式碼. 這個按鈕將帶你進入下一行程式碼, 如果是函式, 它將逐行進入函式.

  • 步過 的程式碼. 這個按鈕會進入下一行程式碼, 但它不會逐行跳過函式.

  • Break . 這個按鈕會暫停執行遊戲.

  • 繼續 . 該按鈕在中斷點或暫停後恢復遊戲.

錯誤

這是運作遊戲時列印錯誤和警告資訊的地方.

您可以在 專案設定>除錯> GDScript 中禁用特定的警告.

分析工具

探查器用於查看專案使用時正在運作哪些程式碼,以及它如何影響效能。

也參考

有關如何使用探查器的詳細說明可以在專用的 doc_the_profiler 頁面中找到。

分析工具

Visual Profiler 可用來監控分別在 CPU 和 GPU 上渲染影格時花費最多時間的情況。這允許追蹤由渲染引起的潛在 CPU 和 GPU 瓶頸的來源。

警告

Visual Profiler 僅測量渲染工作(例如執行繪製呼叫)所花費的 CPU 時間。 Visual Profiler **不**包含其他工作(例如腳本編寫和實體)所花費的 CPU 時間。使用標準 Profiler 標籤來追蹤與渲染無關的 CPU 工作。

若要使用視覺化分析器,請執行專案,切換到偵錯器底部面板中的 Visual Profiler 分頁,然後按一下 Start

點擊“開始”後的“Visual Profiler”分頁,等待幾秒鐘,然後點擊“停止”

點擊“開始”後的“Visual Profiler”分頁,等待幾秒鐘,然後點擊“停止

您將看到分析器運作時出現的類別和結果。也會出現圖形線,左側是 CPU 影格圖,右側是 GPU 影格圖。

按一下 停止 完成分析,這將使結果保持可見但凍結在適當的位置。停止正在執行的專案後,結果仍然可見,但退出編輯器後則不再可見。

點擊左側的結果類別可在右側的 CPU 和 GPU 圖表中反白顯示它們。您也可以按一下圖形將遊標移至特定影格編號,並在左側結果類別中反白顯示所選資料型別。

您可以在時間值(每影格毫秒)或目標影格時間百分比(目前硬編碼為 16.67 毫秒或 60 FPS)之間切換結果顯示。

如果在分析過程中出現影格速率峰值,可能會導致圖表縮放不良。停用 Fit to Frame,以便圖表將縮放到 60 FPS+ 部分。

備註

請記住,Visual Profiler 結果可能會根據視口分辨率而**顯著**,如果使用“disabled”或“canvas_items”拉伸模式,則視口分辨率由視窗大小決定。

比較不同運作的結果時,請確保所有運作使用相同的視窗大小。

使用任何渲染方法(Forward+、Mobile 或 Compatibility)時支援 Visual Profiler,但報告的類別將根據目前渲染方法以及啟用的圖形功能而有所不同。例如,當使用 Forward+ 時,具有陰影投射燈的簡單 2D 場景將導致以下類別:

例子結果來自Callgrind, 這是Valgrind的一部分

例子結果來自Callgrind, 這是Valgrind的一部分

再舉一個 Forward+ 的例子,啟用陰影投射燈和各種效果的 3D 場景將導致啟用以下類別:

可視分析器中 3D 場景的範例結果

可視分析器中 3D 場景的範例結果

請注意,在 3D 範例中,幾個類別的名稱後面附加了 (Parallel)。這暗示多個工作正在 GPU 上並行執行。這通常意味著僅停用其中一項功能不會像預期那樣提高效能,因為其他工作仍需要按順序執行。

網路分析工具

網路剖析器包含了所有通過多人遊戲API進行通信的節點列表, 對於每個節點, 還包含了一些傳入和傳出網路互動量的計數器. 它還具有一個頻寬表, 可以顯示任何特定時刻的總頻寬使用情況.

備註

頻寬計**不**考慮 doc_high_level_multiplayer API 自己的壓縮系統。這意味著更改所使用的壓縮演算法不會更改頻寬計報告的指標。

監視器

監視器是遊戲運作時幾個方面的圖表, 如FPS, 記憶體使用情況, 場景中的節點數量等等. 所有的監控器都會自動追蹤統計, 所以即使遊戲運作時一個監控器沒有打開, 你也可以在以後打開它, 查看數值的變化.

也參考

除了預設的效能監視器之外,您還可以建立:ref:自訂效能監視器 <doc_custom_performance_monitors> 來追蹤專案中的任意值。

顯存

**顯存**標籤顯示了遊戲運作時的顯存使用情況。它按資源路徑提供了每一個使用顯存的資源列表、資源的型別、資源的格式,以及該資源使用了多少顯存。在面板的右上方還有一個顯存佔用總量的數字。

../../../_images/video_ram.png

雜項

**其他**分頁中的工具可以用來識別你在運作時點擊了哪個控制項節點:

  • **點擊的控制項**顯示的是被點擊節點在場景樹中的位置。

  • **點擊的控制項型別**顯示的是被點擊節點的型別。