This commit is contained in:
meishibiezb
2026-06-04 21:37:53 +08:00
parent b0d2a0e2e7
commit 29a3f77908
63 changed files with 4068 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
# BP_Hud
## 基本信息
- **类型**: Blueprint (HUD)
- **父类**: HUD
- **源文件**: /Game/Blueprints/BP_Hud.BP_Hud
- **模块**: Content
## 功能概述
BP_Hud 是项目的 HUD 蓝图,管理三个 UI 窗口的引用物品栏窗口InvView类型 WBP_InventoryView、库存窗口InventoryWindow和提示窗口HintWindow。作为 UI 系统的"根"容器,持有并显示各种 Widget。
## 设计用意
BP_Hud 将 UI 管理集中在 HUD 中,而不是分散在各个 Widget 或 Controller 中。它将物品视图、库存窗口和提示窗口都集中持有在一个地方,作为 UI 系统的入口点,方便其他系统通过 HUD 访问和操作 UI。
## 职责范围
BP_Hud 负责持有主要 UI 窗口引用并作为 UI 系统的入口点。具体的 UI 逻辑(物品列表渲染、窗口交互、提示显示)由各 Widget 自身负责BP_Hud 仅提供引用的集中管理。
## 项目内依赖
| 依赖项 | 关系 | 源文件 |
|--------|------|--------|
| WBP_InventoryView | 引用 (InvView) | /Game/Blueprints/UI/Item/WBP_InventoryView |
| WBP_Window | 引用 (InventoryWindow, HintWindow) | /Game/Blueprints/UI/WBP_Window |
## 对外接口
- **蓝图可编辑变量**(均为 Instance Editable
- `InvView` (WBP_InventoryView_C*) -- 物品栏视图 Widget 引用,类型为 WBP_InventoryView
- `InventoryWindow` (WBP_Window_C*) -- 库存窗口 Widget 引用,类型为 WBP_Window
- `HintWindow` (WBP_Window_C*) -- 提示窗口 Widget 引用,类型为 WBP_Window
- **继承自 AHUD 的标准接口**
- `DrawHUD()` -- HUD 绘制入口
- `ReceiveDrawHUD(SizeX, SizeY)` -- 蓝图可覆盖的 UI 绘制事件
- `GetOwningPlayerController()` -- 获取所属的 PlayerController
- HUD 生命周期事件BeginPlay、EndPlay 等)
- **EventGraph**:含 4 个事件和 39 个节点,负责 Widget 的创建和初始化逻辑
## 使用方法
- 在 BP_TestMode 中设置为 `HUDClass`,每次 PlayerController 初始化时自动创建
- 在蓝图 EventGraph 中创建和初始化三个 Widget`InvView`(物品栏)、`InventoryWindow`(库存窗口)、`HintWindow`(提示窗口)
- 三个 Widget 变量为 Instance Editable可在编辑器中替换为不同的 Widget 子类
- 其他系统通过 `PlayerController->GetHUD()` 获取 BP_Hud 实例,再通过变量访问各 Widget
- 作为 UI 系统的"根"容器,所有主要 UI 窗口的引用集中在此处管理
## 用例
- BP_TestMode 的 `HUDClass`,玩家进入关卡时生成
- `InvView` 变量引用 WBP_InventoryView物品系统通过此引用更新物品列表 UI
- `InventoryWindow` 变量引用 WBP_Window库存窗口的显示和隐藏通过此引用控制
- `HintWindow` 变量引用 WBP_Window提示信息的显示通过此引用控制