为 UWP 编译
需求
SCons 3.0+ (详见 为Windows平台编译 ).
Visual Studio 2017或更高版本.关于安装的注意事项和各种提示,请参见 为Windows平台编译.
Windows 10 SDK(可在Visual Studio安装中选择).
ANGLE source.使用
ms_master
(默认)分支.将其保存在没有空格的路径中以避免出现问题.
注解
微软的ANGLE repo已经停止,``ms_master``分支已经被清除.
不过,作为一个临时的变通办法,仍然可以通过提交 c61d048 来下载旧版的源代码.
本页最终将在未来更新,以反映新的构建说明.
参见
有关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
,以便将它们复制到应用程序中.
为了简化工作流程,您可以打开”解决方案属性”,然后在”配置”部分中取消选中应用程序的”构建”选项.您仍然必须至少构建一次以生成一些所需的文件,您可以通过右键单击”解决方案资源管理器”中的项目(不是 解决方案)并选择”构建”来实现.
现在你可以直接运行该项目,你的应用程序应该会打开.你也可以使用 “Debug” 菜单中的 “Start Without Debugging” 选项(或按 Ctrl + F5 ),以使其更快启动.