Version:

本文内容

标识符

在动作管理器架构中,项目是通过字符串标识符来处理的。 字符串标识符用于指代动作、菜单、工具栏和其他项目,因此无论哪个系统定义了它们,都可以从任何地方访问它们。之所以使用字符串标识符,是因为字符串标识符比数字标识符或其他混淆方法更容易读取、发现和在不同环境(C++、Python)之间共享。

在架构中,每个项目类型的标识符都必须是唯一的,但不同类型的标识符不必是唯一的。 例如,可以用相同的标识符字符串注册一个动作和一个菜单,因为应用程序接口希望使用特定的标识符类型,而且不存在可能的误导。 如果尝试用相同的标识符注册相同类型的两个不同项,则会导致注册失败。

标识符标准

系统并不强制规定标识符字符串的具体结构,因此可以使用任何字符串。不过,为了防止碰撞,我们定义了一个推荐标准,以使这些标识符更容易识别、阅读并防止重复。

根据该标准,标识符字符串的结构如下:

`o3de` . <item type> . <system/Gem> . <category (optional)> . <item name>

例如,恢复默认编辑器布局的动作使用以下标识符注册:

o3de.action.layout.restoreDefault

其中

  • action 是项的类型
  • layout 是编辑器系统
  • restoreDefault 是项的名称

类别可用于分组相关的项目,如子系统的一部分或主系统或 Gem 的特定模式。 标识符部分使用小写。

##标识符标题

为了简化 O3DE C++ 代码库的开发,一些常用标识符被定义为特定标头中的常量,以便在多个文件中轻松引用。尽管如此,Gems 并不要求在主编辑器中包含一个文件,只需使用相同的标识符字符串即可正常工作。根据同样的原则,不同语言(例如 Python)也可以无缝使用标识符。