除錯器面板
Godot 的多項除錯工具(包含主除錯器)都集中於畫面下方的除錯器面板。點選 除錯器 分頁即可開啟。
除錯器面板分為多個分頁,每個分頁專注於不同的除錯任務。
堆疊追蹤
當 GDScript 編譯器執行至你程式碼中的中斷點時,堆疊追蹤分頁會自動開啟。
此分頁會顯示 堆疊追蹤,包含物件狀態資訊,以及多個可控制程式執行流程的按鈕。當偵錯器於中斷點暫停時,腳本編輯器行號旁會顯示綠色三角箭頭,指示目前中斷的程式碼行。
小訣竅
您可以透過點選腳本編輯器左側的裝訂線(行號左側)來建立斷點。將滑鼠懸停在該排水溝上時,您會看到出現一個透明的紅點,點擊放置斷點後,該紅點會變成不透明的紅點。再次點選紅點即可刪除斷點。以這種方式建立的斷點在編輯器重新啟動後仍然存在,即使退出編輯器時未儲存腳本也是如此。
你也可以在 GDScript 腳本中使用 breakpoint 關鍵字,於原始碼內建立中斷點。與用滑鼠點擊行號邊緣建立的中斷點不同,這種做法可讓中斷點隨版本控制同步到不同機器。
你可以使用右上角的按鈕執行以下操作:
跳過所有中斷點(保留斷點但暫時不觸發),方便未來持續除錯。
複製當前錯誤訊息。
步入 程式碼:跳到下一行,若進入函式則會逐行執行。
步過 程式碼:跳到下一行,但遇到函式時不會進入內部,直接跳過。
中斷:暫停遊戲執行。
繼續:於中斷點或暫停後繼續執行遊戲。
備註
目前不支援在 工具腳本 上使用偵錯器與中斷點。無論在腳本編輯器中設置的中斷點,或使用 breakpoint 關鍵字,皆會被忽略。你可以改用列印語句來顯示變數內容。
錯誤
此分頁會顯示遊戲運行時的錯誤與警告訊息。
你可在 專案設定 > 除錯 > GDScript 中關閉特定警告。
運算器
此分頁內建運算式求值器 REPL,可即時計算表達式,功能比堆疊追蹤分頁中的變數樹更強大。
當專案在除錯器中暫停時(因中斷點或腳本錯誤),你可於上方文字欄輸入運算式。若專案仍在運作,則此欄位無法編輯,需先設中斷點。只要取消勾選 執行時清空,輸入的運算式可跨執行次數保留,但關閉編輯器後會遺失。
運算式以 Godot 表達式語言 執行,可進行運算並呼叫部分內建函式。可存取成員變數或同一作用域下的區域變數,也能直接輸入常數,等同小型計算機。
參考以下腳本範例:
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 * PI + 5成員變數:
counter、counter ** 2、sqrt(counter)區域變數或參數:
delta、text、text.to_upper()
若偵錯器在**第二個** breakpoint 行暫停,下列運算式有效:
常數運算式:
2 * PI + 5成員變數:
counter、counter ** 2、sqrt(counter)區域變數或參數:
delta、other_text、other_text.to_upper()
效能分析
效能分析器用於檢視專案執行時,哪些程式碼正在運作,以及其對效能的影響。
也參考
效能分析器的詳細使用說明,請參閱專屬頁面:效能分析器。
視覺化分析
視覺化分析器可用於監控每個畫面在 CPU 與 GPU 上分別花費的時間,協助追蹤因繪圖產生的潛在效能瓶頸。
警告
視覺化分析器僅測量繪圖相關任務(例如 draw call)消耗的 CPU 時間, 不 包含腳本執行、物理等其他 CPU 任務。如需追蹤非繪圖任務,請使用標準「效能分析」分頁。
要使用視覺化分析器,請執行專案,切換到下方面板的 Visual Profiler 分頁,然後點選 開始:
開始 後等數秒,再按 停止 即可看到結果
小訣竅
你也可勾選 自動開始,專案下次執行時自動啟動分析。注意:自動開始設定不會跨編輯器啟動保存。
分析進行時會即時顯示各種分類與結果。圖表左側為 CPU 幀圖,右側為 GPU 幀圖。
按下 停止 結束分析後,分析結果仍會保留於面板上,即使停止專案執行亦可瀏覽,但關閉編輯器後資料將消失。
點選左側分類可於右側 CPU/GPU 圖表標示。也可點擊圖表游標,跳至指定幀數並反白左側分類。
結果可切換顯示為每幀毫秒數,或目標幀時間的百分比(目前預設為 16.67 毫秒=60 幀/秒)。
若在分析期間出現幀率飆高,圖表可能會縮放不當。此時可停用 自動縮放至全幀,聚焦於 60 FPS 以上部分。
備註
請注意,視覺化分析器的結果會因視窗解析度差異而**有很大變化**。若使用 disabled 或 canvas_items 延展模式,則由視窗大小決定解析度。
比較多次分析結果時,請確保所有情境下的視窗大小一致。
視覺化分析器支援所有繪圖後端(Forward+、Mobile、相容模式),但報告分類會依目前繪圖方法與啟用的圖形功能不同而異。例如使用 Forward+ 時,單純 2D 場景加陰影光源時會出現以下分類:
2D 場景於視覺化分析器的範例結果
再舉 Forward+ 為例,若 3D 場景啟用陰影與多種特效,則會產生下列分類:
3D 場景於視覺化分析器的範例結果
注意在 3D 範例中,部份分類名稱會標記 (Parallel),代表 GPU 正同時執行多項任務。這通常意味著僅關閉單一功能未必大幅提升效能,因其他任務仍需序列執行。
備註
由於平台限制,在 macOS 上使用相容性轉譯器時不支援視覺效能分析器。
網路分析器
網路分析器會列出所有透過多人 API 通訊的節點,並為每個節點統計進出封包數量,同時提供即時頻寬監控圖表。
備註
頻寬監控儀**不**會考慮 高階多人連線 API 的內建壓縮。更改壓縮演算法並不會影響此圖表顯示的數據。
效能監控
監視器會在遊戲執行時以圖表顯示多項指標,例如 FPS、記憶體用量、場景中的節點數量等。所有監視器都會自動追蹤統計資料,因此就算遊戲執行時沒有開啟某個監視器,你之後仍可開啟並查看數值如何變化。
也參考
除了預設效能監控外,還可依需求建立 自訂效能監控,追蹤專案內任意數值。
顯示記憶體
顯示記憶體 分頁會顯示遊戲執行時所有佔用顯示記憶體的資源清單,列出路徑、資源類型、格式及佔用量。右上角可見總顯示記憶體用量。
其他
其他 分頁提供運作時辨識所點擊控制節點的工具:
點擊節點 會顯示所點擊節點在場景樹的位置。
點擊節點型別 會顯示點擊節點的類型。