AI 速览
附加包教程第六期讲解 .mcfunction 文件与命名空间用法
这是附加包制作教程系列的第六期,属于基础概念单元,围绕行为包中的 .mcfunction 文件与命名空间两个主题展开。前半部分介绍函数文件的存放位置、行数与注释规则、调用与嵌套方式,以及 tick.json 的循环执行机制和计时用法;后半部分说明命名空间的作用、命名建议和适用场景。适合正在学习基岩版附加包开发、想弄清函数与命名规范的玩家阅读。
论坛附件
帖内链接
获取方式
- tick.json 会在世界加载完全前执行,可能导致崩溃
- tick.json 中填写函数名时不能带 .mcfunction 后缀
- 命名空间不要使用 minecraft,该命名空间被官方保留
- 不要在文件夹结构中使用命名空间
本卡片由 AI 阅读本帖后生成,可能存在疏漏,请以帖子正文为准。
|
本帖最后由 782 于 2022-5-15 13:37 编辑 第一部分:.mcfunction文件 一、.mcfunction文件的简介 .mcfunction文件存储在行为包中,可以添加不超过10000行的功能。 .mcfunction将一组命令组合成一个函数(定义一组功能,不是数学意义上的),可以在游戏中调用。 .mcfunction的每行命令开头不应该有斜杠(/)。 .mcfunction的注释是一个井号(#),和Python语言的注释很像。 示例:
这将执行.mcfunction文件中的所有命令。 函数文件可以嵌套,例如:行为包/functions/teleport/home.mcfunction将创建一个名为teleport/home新功能,该函数可以在游戏中调用,如/function teleport/home。 函数文件可以在不使用/reload命令离开游戏的情况下重新加载。 二、tick.json tick.json是一个JSON文件,位于行为包/functions/tick.json,允许执行函数文件。 每个内含的.mcfunction文件将重复执行,就像放置在重复命令方块中一样。 要注意的是,文件名内不能填写后缀名(.mcfunction)! 示例:
因为这个文件是每游戏刻执行一次,根据20游戏刻=1秒的规律,可以做出计时器。 示例(每10秒执行对应的.mcfunction文件):
![]() 第二部分:命名空间 一、命名空间简介 命名空间是标记内容的标识符,可以把它们看作是文件夹。 命名空间很有帮助,因为它们可以防止命名发生冲突。 附加包创建中的命名空间本质上可以被认为是“前缀”或“冒号左侧的部分”。 例如,“minecraft”是“minecraft:zombie”的命名空间。 命名空间的一般形式是:命名空间:名称。 二、选择一个命名空间 合适的命名空间应该是独特的。 像“mob”、“car”、“content”或“custom”这样的命名空间将是不好的,因为其他附加包开发人员可能会想出相同的命名空间。 合适的命名空间很短,因为以后将会大量编写命名空间。 因此,命名空间越短越好。比方说,“this_is_a_mob_of_my_first_addon”是一个不好的命名空间。 对于个人项目,推荐使用玩家名称的简称,对于商业项目,推荐使用公司名称。 除非编辑原版文件,否则不要使用minecraft作为命名空间。这不仅是一个不好的主意,而且我的世界保留了这个命名空间,可能行不通。 三、在哪里使用命名空间? 简而言之,应该尽可能多使用命名空间。 首先,在向游戏添加自定义实体时,应该使用命名空间。 例如:sirlich:shark比shark更好。 最好也使用组件和事件的命名空间。就像我的世界使用minecraft:pig_saddled一样,您应该使用“命名空间:组件”。 最好在动画控制器、渲染控制器和动画中使用命名空间。 例如:“controller.animation.命名空间.实体名称.动画”比“controller.animation.动画”更好。 但不要在文件夹结构中使用命名空间。 ![]() 预告:下一期会带领大家实践——制作第一个附加包,也是“基础概念与初步实践”单元的最后一期。 附加包制作教程系列 上一期 下一期 |


提升卡
观察者