为Web编译

要求

要为Web编译导出模板,需要执行以下操作:

参见

有关godot的scons用法的概述,请参阅 建筑系统简介 .

生成导出模板

启动之前,请确认emscripten配置文件存在,并正确指定所有设置。此文件可用为 ~/.emscripten 在类Unix系统和 %USERPROFILE%\.emscripten 在窗户上。它通常由emscripten sdk编写,例如在调用 emsdk activate latest 或者由您的包管理器。它也是在启动Emscripten时创建的 emcc 如果文件不存在,则编程。

注意

在Windows上,确保将emscripten配置文件中的路径反斜杠作为双反斜杠转义。 \\ 或者使用带有一个正斜杠的Unix风格路径 / .

打开终端并导航到引擎源代码的根目录。然后指示scons构建javascript平台。指定 target 或者 release 对于发布版本或 release_debug 对于调试生成:

scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug

默认情况下, JavaScript singleton 将内置在引擎中。自从 eval() 呼叫可能是一个安全问题, javascript_eval 选项可用于在没有singleton的情况下生成:

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

根据asm.js翻译或llvm后端构建

Webassembly可以通过两种方式编译:默认情况下,首先使用emscripten的 快速比较 LLVM的分叉。然后使用名为 asm2wasm . emscripten自动处理这两个进程,我们只运行scon。

另一个方法使用llvm的Webassembly后端。此后端从llvm 8或开发版本开始可用。emscripten也管理这个过程,所以我们只调用scon。

为了选择这两种方法中的一种, LLVM_ROOT 使用了emscripten配置文件中的变量。如果它指向一个包含emscripten的二进制文件的目录 快速比较 叉子的叮当声, asm2wasm 使用。这是常规emscripten安装中的默认设置。否则,将需要使用使用Webassembly后端构建的llvm二进制文件,并使用llvm的Webassembly后端。