為通用 Windows 平台進行編譯¶
也參考
This page describes how to compile UWP export template binaries from source. If you're looking to export your project to UWP instead, read 為通用 Windows 平台(UWP) 匯出.
系統需求¶
SCons 3.0+ (詳情請參考 為 Windows 進行編譯)。
Visual Studio 2017 或更新版本。有關安裝須知以及其他提示,請參考 為 Windows 進行編譯。
Windows 10 SDK (可在 Visual Studio 安裝中選擇)。
ANGLE 原始碼 。請使用
ms_master
(預設) 分支。請將其放置於路徑中不含空格的位置以避免發生問題。
備註
Microsoft 提供的 ANGLE 已停止維護,而 ms_master
分支已被刪除。
但有一個臨時解決方案,即通過 Commit c61d048 來下載舊版本的原始碼。
本頁之後將會更新以提供新的建置說明。
編譯¶
需要開啟用於建置目標架構的 Visual Studio 提示字元。將參考 為 Windows 進行編譯 以瞭解提示字元如何使用。
UWP 有三種目標架構:x86 (32 位元), x64 (64 位元) 與 ARM (32 位元)。ARM 結構可以使用 x86_arm
或 amd64_arm
作為 vcvarsall.bat
的引數來設定環境變數。
將 ANGLE_SRC_PATH
設為所下載的 ANGLE 原始碼的資料夾。建置過程同時也會建置 ANGLE 來產生選擇架構所需的 DLL。
完成設定之後,即可以與其他平台類似的方式執行 SCons 指令:
C:\godot>scons platform=uwp
建立 UWP 匯出樣板¶
要在編輯器中匯出,需要正確地建置套件與樣板。必須要有 debug
與 release
的所有三種架構才能匯出。
開其中一個架構的啟命令提示字元並執行 SCons 兩次 (每個目標各一次):
C:\godot>scons platform=uwp target=release_debug
C:\godot>scons platform=uwp target=release
對其他架構重複相同的過程。
最後,bin
資料夾中會有幾個 .exe
二進位檔,名稱類似 godot.uwp.opt.debug.32.x86.exe
(依據建置目標與架構而有所不同)。
將其中一個檔案複製到 Godot 原始碼中的 misc/dist/uwp_template
,然後將該二進位檔案重新命名為 godot.uwp.exe
。然後從 ANGLE 的原始碼中,找到 winrt/10/src/Release_%arch%
(其中 %arch%
可能是 Win32
, x64
或 ARM
) 下的 libEGL.dll
與 libGLESv2.dll
,與剛才的執行檔放在一起。
將 uwp_template
中的檔案新增至 ZIP 檔中。依據樣板的建置目標與架構將產生的 ZIP 檔重新命名:
uwp_x86_debug.zip
uwp_x86_release.zip
uwp_x64_debug.zip
uwp_x64_release.zip
uwp_arm_debug.zip
uwp_arm_release.zip
將這幾個樣板移至 Godot 設定路徑的 [版本]\templates
資料夾中,其中, 版本 是編譯匯出樣板要用的 Godot 版本,如, 3.0.alpha
代表 Alpha 版的 Godot 3。若不想取代樣板,則可以在匯出視窗中設定「自定套件」屬性。
通過 Visual Studio 執行 UWP 應用程式¶
若想對 UWP 版本進行除錯或想在尚未打包與簽名的狀況下執行應用程式,可以通過 Visual Studio 來部署與執行。如果你使用 Windows Phone 或 Xbox One 等裝置來測試的話,該方法可能是最簡單的。
在 ANGLE 原始碼資料夾中,開啟 templates
然後點兩下 install.bat
批次檔。該批次檔會安裝用於 ANGLE 應用程式的 Visual Studio 專案樣板。
若尚未建置 Godot,請開啟 ANGLE 原始碼中的 winrt/10/src/angle.sln
解決方案,然後建置 Release/Win32 建置目標。如果有要在裝置上執行的話,則也需要同時建置 ARM 版本。如果熟悉命令行的話,也可以使用 MSBuild。
通過「App for OpenGL ES (Windows Universal)」專案樣板來建立一個新的 Windows App,該樣板在 Visual C++/Windows/Universal
分類下。
該基礎專案已經設定好了 ANGLE 相依性。但,預設情況下該樣板會使用除錯版的 DLL,這些 DLL 的效能通常比較差。因此,請到「Binaries」篩選器,點擊其中的各個 DLL,然後在「Properties」視窗中將相對路徑從 Debug_Win32
更改為 Release_Win32
(或是用於裝置時改為 Release_ARM
)。
在同樣的「Binaries」篩選器中,選擇「Add > Existing Item」,然後將其指向用於 UWP 的 Godot 執行檔。在「Properties」視窗中,將「Content」設為 True
來讓其包含在專案中。
右鍵點擊 Package.appxmanifest
檔案,然後選擇「Open With... > XML (Text) Editor」。在 Package/Applications/Application
元素中,將 Executable
屬性的 $targetnametoken$.exe
更改為 godot.uwp.exe
(即 Godot 執行檔的名稱)。另外,也請將 EntryPoint
屬性更改為 GodotUWP.App
。這樣一來即可確保在應用程式開始時會正確呼叫 Godot 執行檔。
在 Visual Studio 專案資料夾中,建立一個名為 game
的新資料夾 (不是 篩選器)。在該資料夾中,可以放置 data.pck
檔或 Godot 專案檔。之後,請確保在「Add > Existing Item」指令中包含這個資料夾,並將「Content」屬性設為 True
,以確保將這個資料夾複製至應用程式中。
為了簡化工作流程,可以開啟「Solution Properties」然後取消選取「Configuration」中的「Build」選項。然後還是必須要建置一次應用程式來產生一些必須的檔案。可以在「Solution Explorer」中右鍵點擊專案 (不是 解決方案) 然後選擇「Build」來建置。
之後即可直接執行專案,然後應該會開啟應用程式。也可以將「Debug」選單中選擇「Start Without Debugging」(或點擊 Ctrl + F5) 來更快開啟。