UI参考

The documentation of Generic Game Framework.

通用库存系统.封面
罗传月武(YueWu)

作者

罗传月武(YueWu)

专注游戏开发和Web技术。

创建时间: 2025年7月28日更新时间: 2026年9月15日

目录

概述

为所有游戏类型开发通用的 UI 几乎不可行。本节提供 GIS UI 构建体系的关键信息,帮助你在改造或自定义 UI 时找到切入点。

  • 选项:可直接修改默认 UI,或参考默认 UI 完全构建自定义 UI。
  • 前提:需了解免费通用游戏系统(GGS)的 UI 模块,GIS 默认 UI 基于其开发。

设计考量

为提升通用性和适配性,GIS 在 UI 设计上遵循以下原则:

  • UI 零感知:GIS 核心代码/插件对 UI 完全无感知,不包含任何 UI 代码,支持自由构建表现层。
  • 默认 UI 独立提供:所有 UI 在配套项目中实现,可直接使用或作为自定义 UI 的参考。
  • 单向通信:UI 通过核心系统的事件更新,通过核心系统 API 获取展示信息;核心系统不反向操作 UI。
  • 复用 GGS UI 模块:GIS 默认 UI 基于 GGS UI 模块的 CommonUI 扩展开发,避免重复造轮子。

默认 UI

GIS 的所有功能均有对应的默认 UI 展示。

准备工作.项目结构

库存 UI

ItemStackContainer

GIS 通过道具集合管理道具,提供 WB_GIS_ItemStackContainer:

  • 功能:纯逻辑 Widget,无视觉表现,用于复用逻辑,支持多种 UI 样式。
  • 绑定:可绑定任意 ListView(或其衍生,如 TileView)展示道具。
  • 动态更新:通过 CollectionTag 绑定道具集合,集合内道具的增删改动态反映到绑定的 ListView。
  • Entry 灵活性:支持动态设置 ListView 的 Entry 样式(如矩形、方形)。
UI适配.ItemStackContainer
  • 示例:配套项目中的 InventoryMenu 和 EquipmentMenu 使用相同 ItemStackContainer,仅追踪不同集合。
  • 扩展:如有技能集合,可用 ItemStackContainer 追踪 Collection.Skills 构建 SkillsMenu。

ItemStack

GIS 提供 WB_GIS_ItemStack 作为道具栈的 UI 表示,兼作 ListView 的 EntryWidget。

  • 默认样式:提供矩形 (WB_GIS_ItemStack_Rect) 和方形 (WB_GIS_ItemStack_Box) 的 EntryWidget。

动态细节面板

概述

不同道具可通过道具片段扩展字段,UI 需展示这些差异化内容。

UI适配.细节面板
  • 效果:选中 ListView 中的道具时,动态构建对应的细节内容。

用法

  • 细节面板:使用 DynamicEntryBox 动态添加内容。
  • 数据资产:通过 DetailSectionBuilder 数据资产,为不同标签的道具指定对应的 UI 细节部分。
UI适配.细节面板.监听变化
  • 机制:细节面板监听一组 ListView,当道具选择变化时,根据 DetailSectionBuilder 中指定的 SectionWidget 及顺序动态构建内容。

新增细节内容

  • 步骤
    1. 创建继承自 GUIS_ListEntryDetailSection 的新 Widget。
    2. 在蓝图事件图表中,通过 OnListItemObjectSet 接口获取展示对象并更新 Widget 数据。

示例:WB_GIS_ItemDetailSection_Shoppable 展示 Shoppable 片段(道具的买入/卖出价格)。

UMG 部分

UI适配.细节部分.Shoppable界面

蓝图部分:从道具实例获取 Shoppable 数据,通过 CurrencyContainer 控件展示。

UI适配.细节部分.Shoppable蓝图

更多信息

  • 配套项目:更多 UI 需查看配套项目,文档无法一一还原。
  • 其他系统文档:相关系统的文档中会提及对应的 UI 及其用法。