# WBP_ChoiceButton ## 基本信息 - **类型**: WidgetBlueprint (UserWidget) - **父类**: UserWidget - **源文件**: /Game/Blueprints/UI/Dialog/WBP_ChoiceButton.WBP_ChoiceButton - **模块**: Content/Blueprints/UI/Dialog ## 功能概述 对话选项按钮 Widget,用于对话框系统中的分支选择。持有 Executor(interface)、Name(FName)、ButtonText(FText)三个变量。InitButton 函数初始化按钮的 executor、名称和文本,Get_Text_Text 返回按钮显示文本。 ## 设计用意 对话框系统中用于呈现玩家可选分支的 UI 按钮,通过 Executor 接口与对话执行器通信,Name 标识选项标识符。 ## 职责范围 - 渲染对话框分支选项按钮 - 通过 Executor 接口将选项选择结果传递给对话执行系统 ## 项目内依赖 | 依赖项 | 关系 | 源文件 | |--------|------|--------| | (无) | — | — | ## 外部视角 WBP_ChoiceButton 是 UserWidget 的子类,从外部调用者视角: **公开属性(蓝图可读写)** - `Executor`(接口引用)— 对话执行器接口 - `Name`(FName)— 选项标识符 - `ButtonText`(FText)— 按钮显示文本 **自定义函数** - `InitButton(InEx(接口), InName(FName), InText(FText))` — 初始化按钮的执行器、名称和文本 - `Get_Text_Text()` → `FText` — 返回按钮的显示文本(用作绑定) **外部交互方式** - 由 WBP_TestUI(对话框 UI)在 SummonChoiceButtons 中动态创建 - 点击按钮时通过 Executor 接口将选择结果传递给对话执行系统 **EventGraph 事件** | 事件 | 类型 | 触发时机 | 行为 | |------|------|----------|------| | `事件预构造` | 原生覆盖 (PreConstruct) | Widget 创建时 | 预留(当前无连线逻辑) | | `事件构造` | 原生覆盖 (Construct) | Widget 创建完成后 | 预留(当前无连线逻辑) | | `事件Tick` | 原生覆盖 | 每帧 | 预留(当前无连线逻辑) | | `On Clicked (MainButton)` | 组件绑定事件 | 用户点击按钮时 | 获取 Executor → 获取 Name → 通过 UDialogPresentationSubsystem 调用 ShowDialog 传递选择结果 | ## 使用方法 WBP_ChoiceButton 在项目中的典型调用流程: - **选项生成流程** — WBP_TestUI.SummonChoiceButtons → 动态创建 WBP_ChoiceButton 实例 → InitButton 设置 Executor/Name/ButtonText → 挂接到面板 - **选项选择流程** — 用户点击按钮 → On Clicked (MainButton) → 获取 Executor 接口和 Name → 通过 UDialogPresentationSubsystem.ShowDialog 传递选择 ## 用例 | 引用方 | 路径 | 用途 | |--------|------|------| | WBP_TestUI | `/Game/Blueprints/UI/Dialog/WBP_TestUI` | 动态生成并初始化,用于玩家对话分支选择 |