为 Web 平台编译
需求
编译 Web 的导出模板需要以下内容:
SCons 3.0+ 构建系统。
参见
有关 Godot 的 SCons 用法的一般概述,请参阅 构建系统介绍。
构建导出模板
在开始之前,确认 emcc
在你的 PATH 中是可用的。这通常是由 Emscripten SDK 配置的,例如在调用 emsdk activate
和 source ./emsdk_env.sh
/emsdk_env.bat
时。
打开终端并导航到引擎源代码的根目录。然后指示 SCons 构建 JavaScript 平台。为发布版本将 target
指定 release
,或为调试版本将 target
指定 release_debug
:
scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug
默认情况下,JavaScript singleton 将被内置到引擎中,官方导出模板也启用了 JavaScript 单例。由于 eval()
调用可能是一个安全问题,javascript_eval
选项可以用来构建,而无需单例:
scons platform=javascript tools=no target=release javascript_eval=no
scons platform=javascript tools=no target=release_debug javascript_eval=no
现在,引擎将由 Emscripten 编译为 WebAssembly。完成后,生成的文件将放在 bin
子目录中。针对发布版本的名字是 godot.javascript.opt.zip
,或针对调试版本的是 godot.javascript.opt.debug.zip
。
最后,将 zip 存档重命名为 webassembly_release.zip
以获取发布版本的模板:
mv bin/godot.javascript.opt.zip bin/webassembly_release.zip
调试模板的 webassembly_debug.zip
:
mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip
线程和 GDNative
由于性能和兼容性的原因,默认的导出模板不包括线程和 GDNative 支持。更多信息见导出页面。
你可以使用选项 threads_enabled=yes
或 gdnative_enabled=yes
构建导出模板,以启用线程或 GDNative 支持:
scons platform=javascript tools=no threads_enabled=yes target=release
scons platform=javascript tools=no threads_enabled=yes target=release_debug
scons platform=javascript tools=no gdnative_enabled=yes target=release
scons platform=javascript tools=no gdnative_enabled=yes target=release_debug
一旦完成,生成的文件将被放置在 bin
子目录下,名称带有 .threads
或 .gdnative
后缀。
最后,将压缩文件重命名为 webassembly_release_threads.zip
和 webassembly_release_gdnative.zip
,用于发布模板:
mv bin/godot.javascript.opt.threads.zip bin/webassembly_threads_release.zip
mv bin/godot.javascript.opt.gdnative.zip bin/webassembly_gdnative_release.zip
与 webassembly_debug_threads.zip
和 webassembly_debug_gdnative.zip
为调试模板:
mv bin/godot.javascript.opt.debug.threads.zip bin/webassembly_threads_debug.zip
mv bin/godot.javascript.opt.debug.gdnative.zip bin/webassembly_gdnative_debug.zip
构建编辑器
也可以建立一个可以在浏览器中运行的 Godot 编辑器版本。编辑器版本需要线程支持,不推荐使用本地构建。你可以用以下方法构建编辑器:
scons platform=javascript tools=yes threads_enabled=yes target=release_debug
一旦完成,生成的文件将被放置在 bin
子目录下。它的名字将是 godot.javascript.opt.tools.threads.zip
。你可以将 zip 内容上传到你的网络服务器上,然后用浏览器访问它来使用编辑器。
关于网络服务器的要求,请参考导出页面。