模块边界
GGS 设置能力拆成三个模块,项目可以按需要接入:
GenericSettingsSystem提供按本地玩家运行的设置子系统、注册表、设置节点、Accessor、Provider 生命周期,以及 Apply、Cancel、Reload 流程。GenericSettingsSystemCommon提供可选的 Video、Audio、Input、Accessibility 和 Language Provider。GenericSettingsSystemUI将设置注册表接入GenericUISystem的 CommonUI 菜单与控件。核心设置运行时不依赖 UI 模块。
运行方式
每个 Local Player 有自己的 UGSS_GameSettingsSubsystem 和 Registry。设置节点可以来自 Definition Data Asset,也可以由运行时 Provider 注册。树结构用 Page、Collection 组织导航和值节点;值通过 Local 或 Shared Accessor 连接到项目状态。
Apply 会提交仍处于待应用状态的节点,并持久化引擎设置与 Shared Settings;Cancel 会恢复追踪到的初始值;Reload 会重新加载 Shared Settings 并从 Accessor 刷新注册值。Dynamic 节点可即时写入 Accessor,因此项目应决定哪些值适合预览、哪些应等到 Apply。
按任务阅读
- 先理解 Registry、SettingId、Accessor、Provider 和 Apply/Cancel 生命周期,再选择 Data Asset 或 C++/Blueprint Provider。
- 选择 Common Provider 前,确定哪些偏好由 GGS 负责存储,哪些值需要由项目系统实际应用。
- 使用设置菜单时单独接入
GenericSettingsSystemUI,并按项目 UI 结构创建 Widget。
深入阅读:
- 设置模型与 Provider
- 内置 Provider 与项目配置
- 设置菜单 UI 接入