Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
PCKPacker
继承: RefCounted < Object
创建可以加载到正在运行的项目中的包。
描述
PCKPacker 可以创建打包文件,项目运行时可以使用 ProjectSettings.load_resource_pack() 来加载打包文件。
var packer = PCKPacker.new()
packer.pck_start("test.pck")
packer.add_file("res://text.txt", "text.txt")
packer.flush()
var packer = new PckPacker();
packer.PckStart("test.pck");
packer.AddFile("res://text.txt", "text.txt");
packer.Flush();
上面的例子中,PCKPacker 创建了打包文件 test.pck,但后将名为 text.txt 的文件添加到了包的根目录。
注意:PCK 是 Godot 自有的打包文件格式。要创建任何程序都能够读取的 ZIP 压缩包,请改用 ZIPPacker。
方法
add_file(target_path: String, source_path: String, encrypt: bool = false) |
|
add_file_from_buffer(target_path: String, data: PackedByteArray, encrypt: bool = false) |
|
add_file_removal(target_path: String) |
|
pck_start(pck_path: String, alignment: int = 32, key: String = "0000000000000000000000000000000000000000000000000000000000000000", encrypt_directory: bool = false) |
方法说明
Error add_file(target_path: String, source_path: String, encrypt: bool = false) 🔗
将 source_path 文件添加到当前 PCK 包的内部路径 target_path 处。target_path 不必写 res:// 前缀,内部会将其去除。文件内容会立即写入到 PCK 中。
Error add_file_from_buffer(target_path: String, data: PackedByteArray, encrypt: bool = false) 🔗
将 data(数据)添加到当前 PCK 包中,其在包内的路径为 target_path。target_path 的 res:// 前缀是可选的,会在内部被自动去除。文件内容会被立即写入 PCK 包中。
Error add_file_removal(target_path: String) 🔗
注册移除 PCK 内部路径 target_path 处的文件。主要用于补丁。如果位于该路径的文件已从之前的 PCK 加载,则会被移除。target_path 不必写 res:// 前缀,内部会将其去除。
Error flush(verbose: bool = false) 🔗
写入文件目录并关闭 PCK。如果 verbose 为 true,则会将文件列表输出在控制台,方便调试。
注意:PCKPacker 被释放时会自动刷新,释放发生在离开作用域或被赋值为 null 时。在 C# 中,使用完后必须弃置该引用,可以使用 using 语句或直接调用 Dispose 方法。
Error pck_start(pck_path: String, alignment: int = 32, key: String = "0000000000000000000000000000000000000000000000000000000000000000", encrypt_directory: bool = false) 🔗
在文件路径 pck_path 处新建 PCK 文件。不会自动添加 .pck 文件扩展名,因此 pck_path 中应包含该扩展名(即使扩展名不是必需的)。