Visual Studio 2022 17.12 版提供 Unreal Engine 專案的直接支援。
之前,您必須先產生Microsoft Visual Studio 專案,才能在Visual Studio中使用 Unreal Engine 專案。 這個過程很麻煩。 每當從 Unreal Engine 編輯器或另一個小組成員新增資產時,必須重新產生 Visual Studio 專案,才能與 Unreal Engine 專案保持同步。
現在,有了 Unreal Engine 專案 (.uproject
) 檔案的直接支援,您可以從 Visual Studio 內直接使用 Unreal Engine 專案。 這項整合可讓您順暢地編輯、偵錯和項目檔管理,而不需要產生和重新產生Visual Studio專案檔的耗時程式。
先決條件
您必須安裝下列專案,才能在 Visual Studio 中使用 Unreal Engine 專案:
- Visual Studio 17.12 版 Preview 2 或更新版本。
- Unreal Engine 4.27 版或 Unreal Engine 第 5 版和更新版本。
- Visual Studio Tools for Unreal Engine。 如需安裝說明,請參閱 安裝 Visual Studio Tools for Unreal Engine。
- 下載 Lyra 範例遊戲。 如需下載指示,請參閱 Lyra 範例遊戲 的 下載 Lyra 入門遊戲 一節。 如果您透過 Unreal Engine 的原始程式碼安裝取得該版本,該版本不包含建置和執行遊戲所需的資產。 使用下載說明,透過 Epic 安裝程式取得一切你所需的內容。
Unreal Engine 5.3 或更早版本的設定
針對 5.4 之前的 Unreal Engine 版本,請遵循下列步驟來啟用 Unreal Engine .uproject
與 Visual Studio 整合。 這些步驟適用於您從 Epic Games Launcher 安裝 Unreal Engine,或從原始程式碼建置。
- 從 Unreal Engine GitHub 存放庫下載您版本 Unreal Engine 的特定修補程式,。 例如,
UnrealBuildTool-5.2.patch
修補 Unreal Engine 5.2 版。 - 開啟 PowerShell 或命令提示字元視窗,並流覽至已安裝 Unreal Engine 的根目錄。 如果 Unreal Engine 安裝在受保護的目錄中,例如
C:\Program Files\Epic Games\UE_5.3
,您需要系統管理員提高許可權才能套用修補程式。 - 使用命令
git apply <path to the downloaded patch file>
套用修補程式。 例如:git apply C:\Users\someuser\Downloads\UnrealBuiltTool-5.3.patch
。 如果失敗,請嘗試git apply -v --ignore-whitespace --ignore-space-change <path to the downloaded patch file>
。
在 Visual Studio 中開啟原生 Unreal Engine 專案
有兩種方式可以在 Visual Studio 中開啟原生 Unreal Engine 專案:
-
[檔案]>[開啟>資料夾],於資料夾中只有一個專案(
.uproject
)時使用。 -
檔案>開啟>Unreal Engine 專案,以在資料夾中有多個 Unreal Engine 專案檔時,挑選要開啟的特定
.uproject
檔案。
在此範例中,我們使用 Lyra 遊戲項目來示範在 Visual Studio 中開啟原生 Unreal Engine 專案。
在 Visual Studio 中,開啟 [檔案] 選單,然後選取 [[開啟>開啟資料夾] 。
瀏覽至安裝 Lyra 遊戲專案(
LyraStarterGame.uproject
) 的目錄,然後選擇 [選取資料夾]。選取資料夾之後,項目檔會出現在 [方案總管] 中,而有關設定工作區的 [輸出] 視窗中會出現訊息。
隨即出現 Unreal Engine 專案支援訊息,並停用 CMake 和 MSBUILD 等其他建置系統。 您可以按兩下訊息角落的 X 來關閉此訊息。
在方案總管中檢視專案
[方案總管] 視窗會顯示許多屬於 Unreal Engine 專案的檔案和資料夾,例如 Platforms
、Plugins
和 Source
資料夾。 您也可以看到 Unreal Engine .uproject
檔案。
Engine 資料夾包含 Unreal Engine 的來源目錄。
方案總管 會篩選為將焦點放在原始程式碼上。 根據預設,Content
資料夾會被過濾掉,其中包含像是紋理、模型等的二進位檔案。 您可以在 Unreal Engine 編輯器中開啟這些資產。 一般而言,二進位檔不會顯示在Visual Studio [方案總管]中。
您不需要重新產生專案,即可檢視或編輯在Visual Studio外部新增的新資產。
Unreal Engine 組態頁面
Visual Studio 提供 Unreal Engine 專案組態頁面。 此頁面會顯示 Unreal Engine 功能的狀態,並可讓您存取更多功能。
若要從 Visual Studio 主功能表存取此頁面,請選擇 [專案]>[設定 Unreal Engine 的工具]:
組態頁面具有紅色/綠色狀態指示器,以及 [整體設定狀態]、[Unreal 建置工具狀態]、[Unreal 引擎目標]、[藍圖支援]、[Visual Studio 整合工具狀態] 等選項的重新整理按鈕。
Unreal 建置工具狀態
為了確保您擁有最新的 Unreal 建置工具 (UBT),請選取 [Unreal 建置工具狀態] 的重新整理圖示。
在此範例中,會出現一則訊息,指出 Unreal Build Tool 並未使用工作區產生器的最新可用版本。 選擇「Update」來將 Unreal Build Tool 更新到最新版本。
在 [輸出] 視窗中,訊息會在準備 Unreal Engine 建置工具時顯示。 工作區就緒的訊息隨即出現,您可以在之後開始新增和編輯檔案。
Unreal Engine 目標
當您建置 Unreal Engine 專案時,有不同的建置組態,稱為 目標,您可以選擇。
Unreal Engine 目標 選項是您產生這些目標的位置。 選擇重新整理圖示以重新整理 Unreal Engine 目標清單,然後開啟視窗,您可以在其中選取您想要建立的目標組態:
如需目標組合的詳細資訊,請參閱 Unreal Engine 的檔案 建置組態描述。
在此範例中,會在下拉式清單中選取 LyraClient、DebugGame和 Win64。
- 選擇 [[新增],將它們新增至要產生的組態清單。
- 選擇 [[產生目標],為每個已選取其複選框的組態建立選取的組態。
產生目標後,您可以依據 選擇建置配置的說明進行選取。 當您產生目標時,請監看輸出視窗中的錯誤,因為可能不支援某些組合。
您可以取消勾選您不想要的目標,然後選取 [產生目標] 按鈕以移除目標。 當您選取 [產生目標]時,未選取的目標將被移除,但它們直到重新載入專案後才會從此清單中消失。
編輯目標屬性
若要編輯 Unreal Engine 目標屬性,請以滑鼠右鍵按兩下方案總管中的粗體目標檔案,然後選擇 [編輯 Unreal Engine 目標屬性] 。
例如,如果 LyraEditor.Target.cs
是啟動目標(在此情況下,在 方案總管中為粗體),請右鍵點擊它,然後選擇 編輯此 Unreal Engine 目標屬性。 這會在編輯器中開啟 UETargetProperties.json
檔案。
功能表隨即出現,底部是編輯此 Unreal Engine 目標的選項。 選取此選項會在編輯器中開啟 UETargetProperties.json。
然後,您可以變更目標屬性,例如命令行自變數。
編輯項目設定
若要編輯 Unreal Engine 項目設定,請在 [方案總管] 中的 .uproject
檔案上按下滑鼠右鍵,然後選擇 [編輯 Unreal Engine 項目設定] 。
ProjectSettings.json
檔案會在編輯器中開啟。 然後,您可以變更專案設定,例如要從 [解決方案總管] 檢視中排除的專案檔和引擎檔案,以及要從 IntelliSense 排除的共用包含路徑等等。 您可以使用這些設定來排除不需要加速 IntelliSense 的檔案。
功能表隨即出現,底部是編輯 Unreal Engine 專案設定的選項。 選取此選項會在編輯器中開啟 『.uproject』 檔案。
選擇組建組態
若要選擇組建組態,請從 [組態] 下拉式清單中選擇您想要的目標:
設定下拉選單包含項目:DebugGame - Win64 和 Development - Win64。
如果您要建置的目標不在清單中,請如 Unreal Engine 目標中所述新增它。
在 Visual Studio 中編輯和偵錯
您可以在 Visual Studio 中編輯、建置和偵錯 Unreal Engine 專案。 若要瞭解如何在 Visual Studio 中新增 Unreal Engine 模組、類別和外掛程式,請參閱 在 Visual Studio 中新增 Unreal Engine 類別、模組和外掛程式。
您可以在程式代碼中設定斷點,然後在 Unreal Engine 編輯器中執行遊戲。 當斷點被觸發時,您可以在 Visual Studio 中偵錯程式碼。
根據預設,Visual Studio 只會產生一個目標:開發 - Win64。 此目標會建置並啟動 Unreal 編輯器,並載入您的遊戲專案。
如果您在 Visual Studio 中開啟 Lyra 遊戲範例項目的資料夾,請遵循下列步驟嘗試偵錯:
- 在 Visual Studio 中,開啟
LyraGameplayAbility_RangedWeapon.cpp
。 在 [方案總管] 的 [搜尋] 窗格中搜尋該檔案,或者在 下:[Games>LyraStarterGame>Source>LyraGame>Weapons>LyraGameplayAbility_RangedWeapon.cpp] 尋找該檔案。 - 在
LyraGameplayAbility_RangedWeapon.cpp
中,移至約 477 行。 尋找函式:void ULyraGameplayAbility_RangedWeapon::OnTargetDataReadyCallback
。 - 按下 F9 ,在 函式上放置斷點。
- 選擇 [偵錯]>[開始偵錯],在 Visual Studio 中執行範例遊戲。 提供 Unreal Engine 編輯器一些時間來載入遊戲。
- 在 Unreal Engine 編輯器中,選擇工具列上的 [播放] 按鈕(或按
Alt+p
),以啟動遊戲。 - 在 Lyra 遊戲中,使用
w
、a
、s
、d
鍵,將玩家向左流覽至 淘汰 入口網站。 將玩家放在入口上以載入遊戲。 - 遊戲執行後,按下滑鼠按鈕以發射,您應該會在 Visual Studio 中看到斷點:
常見問題和解決方案
- 您的引擎和遊戲程式代碼必須位於相同的磁碟驅動器上。 如果不是,請參閱 遊戲來源和引擎來源位於不同的磁碟驅動器。
- 不支援相同資料夾中的多個
.uproject
檔案。 若要在相同資料夾中有多個項目檔時開啟特定的.uproject
檔案,請使用 File>Open>Unreal Engine 專案。 - 如果您透過 File>Open>Unreal Engine 專案開啟 Unreal Engine 專案,則專案不會出現在 Visual Studio File>Recent Projects and Solutions 列表中。 如果您透過 File>Open Folder開啟 Unreal Engine 專案,則開啟的 Unreal Engine 專案會出現在最近開啟的項目清單中。
- 某些延伸模組可能無法使用以 Unreal Engine 項目開啟的專案。
- 來源檔案的屬性視窗是空的。 這是目前依設計而成。
- 資料夾檢視中有 Visual Studio 方案檔。 Unreal Engine 會產生此檔案,但 Visual Studio 不會使用它,您可以忽略它。
遊戲來源和引擎來源位於不同的磁碟驅動器上
如果您的 Unreal Engine 原始程式碼和遊戲原始碼位於不同的磁碟驅動器上,當您開啟遊戲程式代碼專案時會出現錯誤。 例如:如果您的遊戲位於 C:\Users\MyUser\MyGame
則 Unreal Engine 必須位於 C:\
磁碟驅動器的某處;否則 Visual Studio 中的 Unreal Engine 專案支持無法使用:
我們建議下列其中一個解決方案:
解決方案 #1:將遊戲和引擎來源移至相同的磁碟驅動器
最簡單的解決方案是使用 Windows File Explorer
,將遊戲專案移至 Unreal Engine 所在的相同邏輯磁碟驅動器。
如果您要移動透過 Epic Games Launcher
安裝的 Unreal Engine 來源,請卸載引擎,然後將它重新安裝到與遊戲相同的磁碟驅動器。 如此一來,引擎組態檔就會反映新的位置。
在相同的磁碟驅動器上擁有遊戲來源和引擎來源之後,您可以在 Visual Studio 中開啟 .uproject
。
解決方案 #2:建立 Unreal Engine 的符號連結,並變更引擎關聯屬性
如果無法將引擎來源和遊戲來源移至相同的磁碟驅動器,您可以建立 Unreal Engine 來源的符號連結,並將 .uproject
檔案中的 EngineAssociation
屬性變更為相符。
在此範例中,假設 Unreal Engine 位於 C:\Program Files\Epic Games\UE_5.4
,而您的遊戲位於 Q:\src\game
。
- 開啟命令提示字元 (而非 PowerShell) 視窗。
- 導航到存有遊戲來源的磁碟驅動器。 例如,
cd /d Q:\
。 - 建立指向 Unreal Engine 的符號連結。
mklink
命令會採用連結參數,指定符號連結名稱,也就是目錄位置顯示至檔案系統的方式。 目標參數是您要鏈接的對象。 例如,mklink /d "Q:\UE-Link" "C:\Program Files\Epic Games\UE_5.4"
會建立名為Q:\UE-Link
的符號連結,指向C:
磁碟驅動器上的 Unreal Engine 目錄。 - 開啟您遊戲中的
.uproject
檔案,並將EngineAssociation
屬性變更為您所建立的符號連結資料夾。 例如,"EngineAssociation": "Q:\\UE-Link"
。
現在您可以在 Visual Studio 中開啟 .uproject
,因為遊戲來源和引擎來源似乎位於相同的磁碟驅動器上。 符號連結會負責將檔案參考重新導向至引擎。
解決方案 #3:建立 Unreal Engine 的符號連結並變更組態檔
此解決方案很脆弱,因為它會變更組態檔,而且下次更新 Unreal Engine 時可能會還原變更。
在此範例中,假設 Unreal Engine 位於 C:\Program Files\Epic Games\UE_5.4
,而您的遊戲位於 Q:\src\Game
- 開啟命令提示字元 (而非 PowerShell) 視窗。
- 瀏覽至存放遊戲來源的磁碟驅動器。 例如,
cd /d Q:\
。 - 建立指向 Unreal Engine 的符號連結。
mklink
命令會採用連結參數,指定符號連結名稱,也就是目錄位置顯示至檔案系統的方式。 目標參數是您要連結到的對象。 例如,mklink /d "Q:\UE-Link" "C:\Program Files\Epic Games\UE_5.4"
會建立名為Q:\UE-Link
的符號連結,指向C:
磁碟驅動器上的 Unreal Engine 目錄。 - 在編輯器中開啟
C:\ProgramData\Epic\UnrealEngineLauncher\LauncherInstalled.dat
。 - 將
InstallLocation
的值取代為您建立的符號連結路徑。 此範例適用於安裝在C:
磁碟驅動器上的 UE 5.4,而符號連結位於Q:
磁碟驅動器上。
以前:
{
"InstallationList": [
{
"InstallLocation": "C:\\Program Files\\Epic Games\\UE_5.3",
...
"AppName": "UE_5.4"
},
}
後:
{
"InstallationList": [
{
"InstallLocation": "Q:\\UE-Link",
...
"AppName": "UE_5.4"
},
}
現在您可以在 Visual Studio 中開啟 .uproject
,因為遊戲來源和引擎來源似乎位於相同的磁碟驅動器上。 符號連結將負責處理將檔案引用重新導向至引擎。
相關內容
Visual Studio Tools for Unreal Engine
在 Visual Studio 中新增 Unreal Engine 類別、模組和外掛程式
快速入門:Visual Studio Tools for Unreal Engine
在 Visual Studio 中檢視 Unreal Engine 藍圖
在 Visual Studio 中檢視 Unreal Engine 記錄
在 Visual Studio 中檢視 Unreal Engine 巨集