godot如何在单个二进制文件中存储引擎mac

How does godot store engine in single binary mac

我很好奇 Godot 引擎在能够使用该二进制文件构建时如何能够将自身存储在单个二进制文件中。很匆忙,但我很好奇。顺便说一句,我正在使用 macOS。

Godot 使用构建系统 (SCons) 生成 header 文件,其中包含引擎所需的二进制数据,例如图标。这是一个示例:https://github.com/godotengine/godot/blob/master/editor/icons/editor_icons_builders.py

生成 header 后,它们将包含在使用生成的 PoolByteArray 变量的 C++ 文件中 as-is。

您可以通过在 Godot repository.

中搜索带有 _builders.py 后缀的文件来找到所有此类文件

请注意,如果您正在处理一个新项目,可以使用一些库来执行此操作。 Godot 采用了自定义解决方案,因为在初始工作完成时可能 none 回来了。

PS:导出项目时 Godot 不会自行构建。它只使用 export templates,它们是禁用了编辑器功能的预编译二进制文件。导出模板二进制文件与游戏数据包(PCK 文件)一起复制。根据目标平台,导出器将执行一些额外的步骤,例如创建 macOS 应用程序包。