Files
netease-modsdk-wiki/docs/wiki/concepts/namespaces.md
2025-03-20 11:52:46 +08:00

48 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 命名空间
mentions:
- SirLich
- MedicalJewel105
---
# 命名空间
<!--@include: @/wiki/bedrock-wiki-mirror.md-->
命名空间是用于标识内容归属的标识符。你可以将它们理解为文件夹。命名空间有助于避免命名冲突的产生。
在附加包创作中,命名空间本质上可以看作是"冒号左侧的部分"。例如在`minecraft:zombie`中,`minecraft`就是命名空间。其通用格式为`命名空间:名称`
举个具体例子说明命名空间的重要性:假设你创建了一个新生物并命名为`minecraft:shark`却不知道应该为自定义内容使用自己的命名空间。一年后Mojang决定在游戏中加入鲨鱼此时就会出现两个`minecraft:shark`的定义,导致命名冲突,你的附加包将无法正常运行。
如果你当初使用`你的命名空间:shark`,就不会发生这种冲突。
## 如何选择命名空间
合适的命名空间应当具有个人独特性。类似`mob``cars``content``custom`这样的通用词是**糟糕的**命名空间选择,因为其他开发者可能会使用相同的名称。
合适的命名空间应当简短。你将会**频繁使用**你的命名空间,因此越简短越好。类似`george_carlin_the_comedian`这样的长命名空间就不太合适。
对于个人项目建议使用玩家ID的简化版本商业项目则建议使用公司名称的合适变体。
优秀示例:
- `gcarlin`
- `sirlich`
- `cubeworld`
- `bworks`
**切勿使用**`minecraft``minecon`作为命名空间除非修改原版文件。这不仅是个糟糕的主意而且Minecraft保留了这些命名空间的使用权实际也无法生效。
## 命名空间的使用场景
简而言之,应当尽可能多地使用命名空间。
基础原则:为游戏添加自定义实体时必须使用命名空间。`sirlich:shark`的命名方式远优于`shark`
在组件和事件的命名中也应使用命名空间。就像Mojang使用`minecraft:pig_saddled`那样,你应该使用`命名空间:我的生物事件``命名空间:我的组件组`的格式。
在动画控制器、渲染控制器和动画的命名中也推荐使用命名空间。例如:`controller.animation.命名空间.实体名称.动作`的格式优于`controller.animation.我的动作`
## 无需使用命名空间的场景
实际文件结构不需要包含命名空间。`animations/命名空间/我的实体/animation`的路径结构反而会比`animations/我的实体/animation`更易造成混淆。