Cat_Anchor 发表于 2023-1-16 08:17:01

附加包教程:16.子包

本帖最后由 Cat_Anchor 于 2025-3-30 22:22 编辑




前言

上期,我们学完了方块。接下来,我们即将学习附加包的子包。


https://klpbbs.com/static/image/hrline/line5.png


子包

子包就是附加包的不同“版本”,比如纹理包的“32x”和“64x”版本等等。行为包和资源包都可以有子包。
子包存放在行为包根目录或资源包根目录的 subpacks 文件夹下。在这个文件夹下新建一个文件夹,名称就用子包的名称命名。打开这个文件夹,这里就相当于子包的根目录。在行为包下创建的子包下就是子行为包根目录,资源包也是这样。
还需要在 manifest.json 里定义子包,数据如下。
{
"format_version": 2,
"header": { ... },
"modules": [ ... ],
"subpacks": [ // 在这里定义子包。
    {
      "folder_name": "壮丽日出", // 这里填写 subpacks 文件夹下子包的文件夹名称。
      "name": "壮丽日出", // 这里是游戏内可见的选项名称,可以用 \n 换行。
      "memory_tier": 1 // 这里是启用这个子包所需要的运行内存 RAM。这里的数字乘上 0.25GiB,就是需要的运行内存。如果设备的运行内存小于这个值,就不能选择这个子包,而且会有提示。
    },
    {
      "folder_name": "Null", // 指定一个不存在的 subpacks 下的文件夹名称时,将不会应用任何子包。
      "name": "普通白云",
      "memory_tier": 1
    },
    { //可以有很多个子包
      "folder_name": "日出云层",
      "name": "日出云层",
      "memory_tier": 1
    }
],
"settings": [ ... ]
}
这就是如何运用子包的全部内容了。
注意,目前子包有问题。子包只能替换附加包中不存在的文件夹,如果附加包中有这个文件夹,而子包中也有,那么游戏可能会崩溃。


https://klpbbs.com/static/image/hrline/line1.png


总结

这一期,我们学习了子包。下一期,我们将讲附着物。




第十五期 第十六期 第十七期

巅疯狂魔 发表于 2023-1-16 09:01:19

感谢分享

账号已废弃 发表于 2023-1-16 10:37:12

memory_tier好像是默认,数值越高越优先选择

Cat_Anchor 发表于 2023-1-16 16:06:55

指令凋灵 发表于 2023-1-16 10:37
memory_tier好像是默认,数值越高越优先选择

感谢分享

Cat_Anchor 发表于 2023-1-20 12:25:01

指令凋灵 发表于 2023-1-16 10:37
memory_tier好像是默认,数值越高越优先选择

其实这个也对,但是基岩版开发wiki的解释是“要启用此子包,设备必须拥有的RAM数量。1内存层=0.25 GB”。把这个值设置过大会提示无法选择这个选项,因为内存不足什么的,所以wiki的说法是正确的,同时值越大优先级越高,负值也是这样

不是贝勒咕 发表于 2025-7-25 19:34:51

Java版有类似子包的东西吗

Yu_Zhuohao 发表于 2025-8-28 19:28:48

setting字段怎么使用啊啊
页: [1]
查看完整版本: 附加包教程:16.子包