为 Web 平台编译

需求

编译 Web 的导出模板需要以下内容:

参见

有关 Godot 的 SCons 用法的一般概述,请参阅 构建系统介绍

构建导出模板

在开始之前,确认 emcc 在你的 PATH 中是可用的。这通常是由 Emscripten SDK 配置的,例如在调用 emsdk activatesource ./emsdk_env.sh/emsdk_env.bat 时。

打开终端并导航到引擎源代码的根目录。然后指示 SCons 构建 JavaScript 平台。为发布版本将 target 指定 release,或为调试版本将 target 指定 release_debug

  1. scons platform=javascript tools=no target=release
  2. scons platform=javascript tools=no target=release_debug

默认情况下,JavaScript singleton 将被内置到引擎中,官方导出模板也启用了 JavaScript 单例。由于 eval() 调用可能是一个安全问题,javascript_eval 选项可以用来构建,而无需单例:

  1. scons platform=javascript tools=no target=release javascript_eval=no
  2. 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 以获取发布版本的模板:

  1. mv bin/godot.javascript.opt.zip bin/webassembly_release.zip

调试模板的 webassembly_debug.zip

  1. mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip

线程和 GDNative

由于性能和兼容性的原因,默认的导出模板不包括线程和 GDNative 支持。更多信息见导出页面

你可以使用选项 threads_enabled=yesgdnative_enabled=yes 构建导出模板,以启用线程或 GDNative 支持:

  1. scons platform=javascript tools=no threads_enabled=yes target=release
  2. scons platform=javascript tools=no threads_enabled=yes target=release_debug
  3. scons platform=javascript tools=no gdnative_enabled=yes target=release
  4. scons platform=javascript tools=no gdnative_enabled=yes target=release_debug

一旦完成,生成的文件将被放置在 bin 子目录下,名称带有 .threads.gdnative 后缀。

最后,将压缩文件重命名为 webassembly_release_threads.zipwebassembly_release_gdnative.zip ,用于发布模板:

  1. mv bin/godot.javascript.opt.threads.zip bin/webassembly_threads_release.zip
  2. mv bin/godot.javascript.opt.gdnative.zip bin/webassembly_gdnative_release.zip

webassembly_debug_threads.zipwebassembly_debug_gdnative.zip 为调试模板:

  1. mv bin/godot.javascript.opt.debug.threads.zip bin/webassembly_threads_debug.zip
  2. mv bin/godot.javascript.opt.debug.gdnative.zip bin/webassembly_gdnative_debug.zip

构建编辑器

也可以建立一个可以在浏览器中运行的 Godot 编辑器版本。编辑器版本需要线程支持,不推荐使用本地构建。你可以用以下方法构建编辑器:

  1. scons platform=javascript tools=yes threads_enabled=yes target=release_debug

一旦完成,生成的文件将被放置在 bin 子目录下。它的名字将是 godot.javascript.opt.tools.threads.zip。你可以将 zip 内容上传到你的网络服务器上,然后用浏览器访问它来使用编辑器。

关于网络服务器的要求,请参考导出页面