62 lines
2.7 KiB
Markdown
62 lines
2.7 KiB
Markdown
# 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` | 动态生成并初始化,用于玩家对话分支选择 |
|