Visual Studio 藉由在呼叫堆棧和局部變數視窗中顯示 Unreal Engine 藍圖的相關信息,以改善 Unreal Engine 專案的偵錯。 此功能可讓您在一個偵錯會話中,將藍圖程式代碼與C++程序代碼一起偵錯。 透過這項功能,您可以輕鬆地追蹤藍圖與C++程式代碼之間的互動,讓您更輕鬆地識別和修正 Bug。
藍圖是 Unreal Engine 中提供的可視化腳本技術,可用於快速原型設計和開發。 它們可以與C++程式代碼互動,而且在許多情況下,遊戲原本是設計為藍圖,稍後轉換成C++以改善效能。 如果您花時間將藍圖轉換成C++,這項功能可讓您將藍圖與C++程序代碼一起分析,以協助轉換。 這可減少在 Visual Studio 與 Unreal 編輯器之間切換的需求,提供順暢的偵錯體驗,並減少內容切換。
Visual Studio 藍圖調試程序支援提供:
- 整合式呼叫堆疊:藍圖框架會出現在與C++框架相同的呼叫堆疊中。
- 變數檢查:檢視 Blueprint 節點的釘選及其值顯示在局部變數視窗中。
- 整合偵錯體驗:在相同會話中偵錯藍圖和C++程序代碼。
- 斷點支援:在藍圖所呼叫C++程式代碼中設定斷點。 當您有多個藍圖可以呼叫C++程式碼時,這非常有用,但您不確定哪些藍圖確實呼叫了程式碼及其原因。
先決條件
- Visual Studio 2022 17.14 或更新版本,並已安裝 遊戲開發的 C++ 工作負載。
- 適用於 Unreal Engine 藍圖元件的 Visual Studio 調試程式工具 。
- Visual Studio Tools for Unreal Engine 元件。
- 適用於 Visual Studio 的 Unreal Engine 外掛程式。
- 安裝了包含偵錯符號的 Unreal Engine。
- 適用於 Unreal Engine 的 Visual Studio 外掛程式。
安裝先決條件
執行 Visual Studio 安裝程式以安裝必要的元件來偵錯 Unreal Engine 藍圖。 如需安裝 Visual Studio Tools for Unreal Engine 的詳細資訊,請參閱 開始使用 Visual Studio Tools for Unreal Engine。
在 工作負載 窗格中,確定已安裝 C++ 遊戲開發工作負載,以及 適用於 Unreal Engine Blueprints 的 Visual Studio 調試工具 和 適用於 Unreal Engine 的 Visual Studio 工具:
安裝 Unreal Engine 偵錯符號
針對您使用 Visual Studio 偵錯的每個 Unreal Engine 版本安裝偵錯符號:
開啟 Epic Games 啟動器。
選取 [Unreal Engine] 窗格,然後選取 [ 連結庫 ] 窗格。
選取引擎版本的下拉功能表,然後選擇 [ 選項]:
在 [選項] 對話框中,選取 [編輯器] 符號以進行偵錯:
選取 [套用],然後等候下載完成。
安裝適用於 Visual Studio 的 Unreal Engine 外掛程式
適用於 Visual Studio 的 Unreal Engine 外掛程式會安裝到 Unreal Engine 中。 當您在 Visual Studio 中開啟 Unreal Engine 專案時,系統會自動啟動它。 此外掛程式提供 Unreal Engine 與 Visual Studio 之間的必要整合,以便在 Visual Studio 調試程式本地變數視窗中查看藍圖節點管腳值。
如需手動安裝指示,請參閱 vc-ue-extensions。
如果您有可在 Visual Studio 中開啟的 Unreal Engine 專案,另一種安裝外掛程式的方式是透過 Unreal Engine 組態視窗在 Visual Studio 中:
- 在 Visual Studio 中開啟 Unreal Engine 專案後,選擇> [項目設定工具 for Unreal Engine] 以開啟 [Unreal Engine 整合組態] 視窗。
- 在 [Visual Studio 整合工具狀態 ] 區段中,依需求選取 [ 安裝至專案 ] 或 [ 安裝至引擎 ]。
如果您沒有看到安裝按鈕,請選擇重新整理圖示以重新整理狀態。 如果您需要手動安裝外掛程式,請選取 [ 手動安裝指示 ] 連結,以開啟包含安裝指示 的vc-ue-extensions 頁面。
Unreal Engine 集成配置視窗的螢幕快照。在 [Visual Studio 集成工具狀態] 區段中,突出顯示 [重新整理]、[安裝至專案] 和 [安裝至引擎] 按鈕,及 [手動安裝指示] 連結也被突出顯示。
設定測試專案
若要測試藍圖調試程式功能,請建立包含藍圖和C++程式代碼的專案。 Unreal Engine First Person 範本運作良好。
開啟 Unreal Engine 編輯器並建立新的 First Person 專案。
確定已選取 C++ :
建立項目之後,請關閉所有 Unreal 編輯器實例。
在Visual Studio中,開啟產生的Visual Studio方案檔 (.sln)。
安裝適用於 Unreal Engine 的 Visual Studio 外掛程式
若要在 Visual Studio 調試程式中檢視 Unreal Engine 的藍圖節點變數,您需要安裝 Visual Studio 外掛程式。 外掛程式可以安裝在引擎或遊戲專案來源中。 在 Visual Studio 中開啟 Unreal Engine 專案時,系統會自動啟動它。 如需安裝指示,請參閱 vc-ue-extensions。
偵錯藍圖
請遵循下列步驟來設定斷點、檢查藍圖函式,以及檢視其節點釘選值:
在Visual Studio中,找出
AttachWeapon
武器元件類別中的方法。 例如,如果您將專案FirstPerson
命名為 ,函式會位於 檔案FirstPersonWeaponComponent.cpp
中。在方法的
AttachWeapon
開頭新增斷點。 當玩家在遊戲中拿起武器時,會呼叫此方法:在 [Visual Studio 方案組態 ] 下拉式清單中,選取 [開發編輯器]:
在Visual Studio中,編譯並執行專案以開啟Unreal編輯器。
在 Unreal 編輯器中,選取綠色的 [播放] 按鈕以啟動遊戲。
在執行中的遊戲中,按 W 鍵向前移動,直到您與武器相撞並觸發斷點為止。
當斷點被觸發時,請檢查 呼叫堆疊 視窗。 藍圖堆疊框架會出現在您的C++堆疊框架中:
Visual Studio 中呼叫堆疊視窗的螢幕快照。AttachWeapon 中的斷點位於呼叫堆疊頂端。在 BP_PickUp_Rifle::ExecuteUbergraph_BP_PickUp_Rifle 和 BP_PickUp_Rifle::BndEvt___BP_PickUp_Rifle_TP_PickUp_K2Node_ComponentBoundEvent_1_OnPickUp_DelegateSignature 的呼叫堆疊中,兩個藍圖項目被反白顯示。
在呼叫堆疊中雙擊第一個 Blueprint 框。
開啟 [ 局部變數 ] 視窗,以檢視與藍圖節點相關聯的變數。 您可以看到藍圖節點接腳的值:
總結
Visual Studio 藍圖調試程式提供順暢的偵錯體驗,可橋接 Unreal Engine 專案中C++與藍圖程式代碼之間的差距。 這個整合式方法可讓您:
- 追蹤從C++到藍圖和返回的執行流程。
- 檢查藍圖變數、節點釘選值,以及C++變數。
- 在與 C++程式碼相同的偵錯工作階段中逐步檢視 Blueprint 的執行框架。
這種統一的偵錯體驗可協助有效地解決這兩種編碼範例之間的問題,而不需要在不同的偵錯工具之間切換。