标识符¶
标识符(Identifier)是Minecraft基岩版中用于唯一识别各类游戏元素的名称字符串。标识符在实体、方块、物品、粒子特效、动画等几乎所有可定义对象中都有应用,是整个数据驱动系统的基础。
赋命名空间标识符¶
赋命名空间标识符(Namespaced Identifier)是基岩版中最为常见的标识符格式,由命名空间(Namespace)和名称两部分组成,中间以冒号:分隔,格式如下:
例如,minecraft:zombie表示原版的僵尸实体,其中minecraft是命名空间,zombie是名称。
命名空间¶
命名空间的作用是将不同来源的内容加以区分,防止名称冲突。当多个附加包同时加载时,命名空间保证了各附加包中定义的内容不会因为使用了相同的名称而产生冲突。
原版游戏内容使用minecraft作为命名空间。附加包开发者不应使用minecraft或minecon作为自定义内容的命名空间,否则可能与原版内容或未来更新产生冲突。
命名空间的命名建议遵循以下原则:
- 使用能代表作者或项目的独特名称,例如
myteam、projectx等。 - 保持简短,因为标识符会在开发过程中被频繁引用。
- 避免使用过于通用的名称,例如
mob、block、item等,以降低与其他附加包冲突的风险。
名称¶
名称部分用于在同一命名空间内唯一标识具体的游戏元素。名称通常使用小写字母和下划线组成,例如custom_sword、red_flower。
运行时标识符¶
运行时标识符(Runtime Identifier)是实体定义中的一个可选参数,用于使自定义实体继承某个原版实体的硬编码行为。运行时标识符在实体定义的描述部分中通过runtime_identifier字段指定。
例如,将运行时标识符设置为minecraft:shulker可以让自定义实体获得潜影贝的部分硬编码物理行为和渲染特征。运行时标识符只能继承目标原版实体中硬编码的行为,对于纯数据驱动的行为不产生影响。
注意
运行时标识符应谨慎使用,因为硬编码行为的继承可能在游戏更新后产生不可预期的变化。
标识符的应用范围¶
赋命名空间标识符在基岩版中的应用范围极为广泛,以下是常见的使用场景:
- 实体:每个实体在行为包和资源包中的定义文件都通过赋命名空间标识符进行关联。
- 方块:每个自定义方块通过赋命名空间标识符注册到游戏中。
- 物品:每个自定义物品通过赋命名空间标识符注册到游戏中。
- 粒子特效:每个粒子特效通过赋命名空间标识符被引用。
- 动画与动画控制器:在资源包中通过标识符关联到实体。
- 组件组与事件:在实体行为定义中,组件组和事件也使用标识符进行命名和引用。
标识符命名规范¶
基岩版的标识符采用蛇形命名法,即全小写字母和下划线的组合。命名空间和名称的组合字符串长度不应过长,以保持可读性和易用性。标识符一旦发布后不应随意更改,因为其他附加包和世界存档可能依赖于该标识符。