Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
为 Web 平台编译
参见
本页面描述的是如何从源码编译 HTML5 编辑器和导出模板二进制文件。如果你想要将项目导出到 HTML5,请移步《为 Web 导出》。
需求
编译 Web 的导出模板需要以下内容:
SCons 4.4+ 构建系统。
构建导出模板
在开始之前,确认 emcc 在你的 PATH 中是可用的。这通常是由 Emscripten SDK 配置的,例如在调用 emsdk activate 和 source ./emsdk_env.sh/emsdk_env.bat 时。
打开终端(命令行),并进入到引擎源代码的根目录。然后,让 SCons 开始构建 Web 平台。你需要指定 target 参数,如果要编译发布版就设为 template_release ,如果要编译调试版就设为 template_debug :
scons platform=web target=template_release
scons platform=web target=template_debug
默认情况下,引擎在编译时会内置 JavaScriptBridge singleton ,官方提供的导出模板也都启用了这个 JavaScript 单例。不过,由于调用 eval() 可能会带来安全隐患,你可以使用 javascript_eval 选项来编译一个不包含该单例的引擎版本:
scons platform=web target=template_release javascript_eval=no
scons platform=web target=template_debug javascript_eval=no
默认情况下,WebWorker 线程支持是开启的。如果你想禁用它,并且只使用单线程运行,可以使用 threads 选项来编译一个不带线程支持的网页模板:
scons platform=web target=template_release threads=no
scons platform=web target=template_debug threads=no
现在,引擎将由 Emscripten 编译为 WebAssembly。完成后,生成的文件将放在 bin 子目录中。其名称针对发布版本是 godot.web.template_release.wasm32.zip,或针对调试版本是 godot.web.template_debug.wasm32.zip。
最后将 zip 归档文件重命名为 web_release.zip,作为发布模板:
mv bin/godot.web.template_release.wasm32.zip bin/web_release.zip
调试模板则重命名为 web_debug.zip:
mv bin/godot.web.template_debug.wasm32.zip bin/web_debug.zip
GDExtension
由于性能和兼容性的原因,默认的导出模板不包含对 GDExtension 的支持。详见导出页面。
构建导出模板时使用选项 dlink_enabled=yes 选项即可启用对 GDExtension 的支持:
scons platform=web dlink_enabled=yes target=template_release
scons platform=web dlink_enabled=yes target=template_debug
完成后,可以将得到的文件放入子目录 bin 中。名称中带有 _dlink。
最后将 zip 归档文件重命名为 web_dlink_release.zip 和 web_dlink_release.zip,作为发布模板:
mv bin/godot.web.template_release.wasm32.dlink.zip bin/web_dlink_release.zip
mv bin/godot.web.template_debug.wasm32.dlink.zip bin/web_dlink_debug.zip
构建编辑器
其实也可以编译出一个能在浏览器里运行的 Godot 编辑器版本。不过,这个网页版并不推荐作为主力使用,体验上还是原生的桌面版(Native build)更好。如果你想编译网页版编辑器,可以使用以下命令:
scons platform=web target=editor
编译完成后,生成的文件会被放在 bin 子文件夹里。它的名字会是 godot.web.editor.wasm32.zip 。你只需要把这个压缩包里的内容上传到你的网页服务器上,然后用浏览器访问它,就可以直接使用这个编辑器啦。
关于网页服务器的要求,请参考 export page 。
小技巧
Godot 仓库包含一个 Python 脚本,用于托管本地 web 服务器。这可以用来在本地测试 Web 编辑器。
编译完编辑器后,解压在 bin/ 文件夹中创建的 ZIP 文件,然后在 Godot 仓库根目录中运行以下命令:
# You may need to replace `python` with `python3` on some platforms.
python platform/web/serve.py
这会启动一个本地服务来提供 bin/ 文件夹里的内容,并且会自动打开你电脑的默认浏览器。在打开的网页中,找到并访问 godot.editor.html ,你就可以通过这种方式来测试网页版的编辑器了。
请注意,对于生产用例,不应使用此基于 Python 的 Web 服务器。相反,你应该使用已建立的 Web 服务器,例如 Apache 或 nginx。