为 Web 平台编译

需求

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

  • Emscripten 1.39.9+。
  • Python 3.5+。
  • SCons 3.0+ 构建系统。 参见 构建系统介绍。

    构建导出模板

    emcc 在你的 PATH 中是可用的。这通常是由 Emscripten SDK 配置的,例如在调用 emsdk activatesource ./emsdk_env.sh/emsdk_env.bat 时。 target 指定 release,或为调试版本将 target 指定 release_debug
    1. scons platform=javascript tools=no target=releasescons platform=javascript tools=no target=release_debug
    JavaScript singleton 将被内置到引擎中,官方导出模板也启用了 JavaScript 单例。由于 eval() 调用可能是一个安全问题,javascript_eval 选项可以用来构建,而无需单例:
    1. scons platform=javascript tools=no target=release javascript_eval=noscons platform=javascript tools=no target=release_debug javascript_eval=no
    bin 子目录中。针对发布版本的名字是 godot.javascript.opt.zip,或针对调试版本的是 godot.javascript.opt.debug.zipwebassembly_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

    导出页面。 threads_enabled=yesgdnative_enabled=yes 构建导出模板,以启用线程或 GDNative 支持:
    1. scons platform=javascript tools=no threads_enabled=yes target=releasescons platform=javascript tools=no threads_enabled=yes target=release_debugscons platform=javascript tools=no gdnative_enabled=yes target=releasescons 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.zipmv 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.zipmv 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 内容上传到你的网络服务器上,然后用浏览器访问它来使用编辑器。 导出页面。