为 UWP 编译¶
需求¶
SCons 3.0+ (see 为Windows平台编译 for more details).
Visual Studio 2017 or later. See 为Windows平台编译 about the caveats of installing it and the various prompts.
Windows 10 SDK(可在Visual Studio安装中选择)。
ANGLE source。使用
ms_master
(默认)分支。将其保存在没有空格的路径中以避免出现问题。
注解
微软的ANGLE repo已经停止,``ms_master``分支已经被清除。
不过,作为一个临时的变通办法,仍然可以通过提交`c61d048 <https://github.com/microsoft/angle/tree/c61d0488abd9663e0d4d2450db7345baa2c0dfb6>`__来下载旧版的源代码。
本页最终将在未来更新,以反映新的构建说明。
参见
有关Godot的SCons用法的一般概述,请参阅 构建系统介绍。
开始编译¶
您需要为要构建的目标体系结构打开正确的Visual Studio提示符。检查 为Windows平台编译 以查看这些提示是如何工作的。
UWP有三种目标体系结构:x86(32位),x64(64位)和ARM(32位)。对于后者,您可以使用 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
。从在 winrt/10/src/Release_%arch%
( %arch%
可以是 Win32
、x64
或 ARM
)下的ANGLE源代码, 获取 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设置中的路径 [versionstring]\templates
文件夹,其中 versionstring 是您编译导出模板针对的Godot版本——例如 3.0.alpha
针对Godot 3的alpha版本。如果您不想替换模板,可以在导出窗口中设置 自定义包
属性。
使用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应用程序项目,该模板位于 Visual C++/Windows/Universal
类别下。
这是一个已经设置了ANGLE依赖项的基础项目。但是,默认情况下,它会选择通常性能较差的DLL的调试版本。因此,在“二进制”过滤器中,单击其中的每个DLL并在“属性”窗口中,将相对路径从 Debug_Win32
更改为 Release_Win32
(或针对设备的 Release_ARM
)。
在相同的“二进制”过滤器中,选择“添加>现有项”并指向您拥有的针对UWP的Godot可执行文件。在“属性”窗口中,将“内容”设置为 True
,以使它包含在项目中。
右键单击 Package.appxmanifest
文件并选择“打开使用……> XML(Text)编辑器”。在 Package/Applications/Application
元素中,将 $targetnametoken$.exe
中的 Executable
属性替换为 godot.uwp.exe
(或者调用您的Godot可执行文件,无论它是什么)。同时将 EntryPoint
属性更改为 GodotUWP.App
。这将确保在应用程序启动时正确调用Godot可执行文件。
在Visual Studio项目文件夹中创建一个名为 game
的文件夹(不是 过滤器),您可以在其中放置 data.pck
文件或Godot项目文件。之后,请确保使用“添加>现有项目”命令将其全部包含在内,并将其“内容”属性设置为 True
,以便将它们复制到应用程序中。
为了简化工作流程,您可以打开“解决方案属性”,然后在“配置”部分中取消选中应用程序的“构建”选项。您仍然必须至少构建一次以生成一些所需的文件,您可以通过右键单击“解决方案资源管理器”中的项目(不是 解决方案)并选择“构建”来实现。
Now you can just run the project and your app should open. You can also use the "Start Without Debugging" option from the "Debug" menu (or press Ctrl + F5) to make it launch faster.