Version:

本文内容

数据类

注意:
本信息面向项目管理器工具的开发人员。如果您是使用项目管理器的用户,请参阅 项目管理器用户指南
注意:
其中包含各种类的功能和作用的简要概述。如果有,目录中还会提供其他链接,包括扩展信息或 github 链接。所有文档反映的代码截至提交 (b79bd3df1f)

概述

源代码说明
TemplateInfo头文件 cpp 文件 描述封装通用模板的数据字段。
ProjectTemplateInfo头文件 项目专用模板的子类。唯一不同的是,该模板包含Gem。
SettingsInterface头文件 与 O3DE 设置注册表交互的界面。
Settings头文件 cpp 文件 实现与 O3DE 设置注册表交互的SettingsInterface
ProjectInfo头文件 cpp 文件 包含描述项目的数据结构,记录在 ProjectManager 内的 project.json 中。还包含远程项目的元数据,或用于检查项目是否需要重建。
EngineInfo头文件 cpp 文件 包含描述当前引擎的数据结构,记录在 ProjectManager 内的 engine.json 中。还包含引擎注册的元数据。
ProjectManagerDefs头文件 包含各种常量和预设字符串。

设置

我们指定SettingsInterface作为一个契约,以确保我们实现了适当的方法,并能从一个简洁的接口( 一个示例 )对设置进行全局访问。它还是访问项目管理器设置的单例接口。

SettingsInterface 指定以下功能作为与 O3DE 设置注册表交互的合约:

函数说明实现
SettingsInterface::Get 使用 QString 键,可以返回字符串或 bool 值。代码
SettingsInterface::Set 使用 QString 键,可以为条目设置字符串或 bool 值。代码
SettingsInterface::Remove 从注册表中删除带有 QString 键的条目。代码
SettingsInterface::Copy 将数值从一个键复制到另一个键。也可以选择删除原始条目,起到 “移动 ”命令的作用。代码
SettingsInterface::GetProjectKey 给定一个 ProjectInfo 实例,为该项目在设置注册表中的位置提供键前缀。代码
SettingsInterface::GetProjectBuiltSuccessfully 查询给定项目的最新构建状态(成功与否)。代码
SettingsInterface::SetProjectBuiltSuccessfully 设置给定项目的最新构建状态(成功与否)。代码

所有这些函数都是纯虚函数,需要在基本实现类中实现,否则会导致编译错误,从而强制执行契约。

Settings 继承 SettingsInterface,它在引擎盖下使用 AZ::SettingsRegistryInterface 与 O3DE 设置注册表交互。

这与 JSON 类似,因此可以通过键路径检索值。例如,以 .setreg 为例:

{
    "key":{
        "subkey":{
            "subsubkey":"value"
        }
    }
}

然后可使用字符串键 key/subkey/subsubkey 检索该值。

ProjectManager::SettingsInterfaceAZ::SettingsRegistryInterface类似,只是它覆盖了一些行为,以查找 Project Manager 的特定配置,而不是整个 O3DE。此外,它还能与 QString 配合使用,而 AZ 的对应程序却不能处理这种情况。

Settings 类继承自SettingsInterface::RegistrarRegistrar AzCoreAZ::Interface的一部分。

Registrar实现 在全局范围内注册接口,这表明了单例模式。

以下是 Settings 也提供的其余功能:

函数说明
Settings::Save 将设置注册表转为字符串流。然后尝试打开 O3DE 用户路径中的 ProjectManager.setreg 文件,并将流数据写入该文件。
Settings::GetBuiltSuccessfullyPaths 针对请求的每个项目路径,获取构建状态。结果以集合形式返回。

返回概述