66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
# BP_ItemTrap
|
||
|
||
## 基本信息
|
||
- **类型**: Blueprint (Actor)
|
||
- **父类**: Actor
|
||
- **源文件**: /Game/Blueprints/Playground/BP_ItemTrap.BP_ItemTrap
|
||
- **模块**: Content/Blueprints/Playground
|
||
|
||
## 功能概述
|
||
物品陷阱 Actor,当触发时通过 GiveItems 函数向角色发放物品。持有 Container(interface 类型)变量引用容器接口,与 BP_DefaultContainer 和 BP_InventoryComp 协作。
|
||
|
||
## 设计用意
|
||
Playground 中用于测试"触发式物品发放"机制的 Actor,验证容器接口(Container interface)在实际游戏物体上的挂载和调用流程。
|
||
|
||
## 职责范围
|
||
- 持有容器接口引用(Container variable, interface 类型)
|
||
- 通过 GiveItems 函数发放物品
|
||
- 通过 EventGraph(4 事件, 9 节点)处理触发逻辑
|
||
|
||
## 项目内依赖
|
||
| 依赖项 | 关系 | 源文件 |
|
||
|--------|------|--------|
|
||
| BP_NewChar | 引用 | /Game/Blueprints/BP_NewChar |
|
||
| BP_InventoryComp | 引用 | /Game/Blueprints/Playground/BP_InventoryComp |
|
||
| BP_DefaultContainer | 引用 | /Game/Blueprints/Playground/BP_DefaultContainer |
|
||
|
||
## 外部视角
|
||
|
||
BP_ItemTrap 是 Actor 的子类,从外部调用者视角:
|
||
|
||
**公开属性(蓝图可读写)**
|
||
- `Container`(IItemContainer 接口引用)— 关联的物品容器
|
||
|
||
**自定义函数**
|
||
- `GiveItems()` — 发放物品给目标角色
|
||
|
||
**核心行为**
|
||
- 被触发时调用 GiveItems 向 BP_NewChar 发放物品
|
||
- 通过 Container 接口引用操作 BP_DefaultContainer
|
||
|
||
**EventGraph 事件**
|
||
|
||
| 事件 | 类型 | 触发时机 | 行为 |
|
||
|------|------|----------|------|
|
||
| `事件开始运行` | 原生覆盖 (BeginPlay) | Actor 生成时由引擎自动触发 | 创建 BP_DefaultContainer → 存入 Container 变量 |
|
||
| `事件Actor开始重叠` | 原生覆盖 (OnActorBeginOverlap) | 其他 Actor 进入触发区域 | 预留(当前无连线逻辑) |
|
||
| `事件Tick` | 原生覆盖 | 每帧 | 调用 GiveItems 发放物品 |
|
||
| `事件RequestMoveItem` | 接口事件 (来自 Inventory 系统) | Inventory 系统请求移动物品时 | 通过 Container 获取容器 → ReceiveItem 接收物品 |
|
||
|
||
**外部交互方式**
|
||
- 放置在 Playground 关卡中作为触发式陷阱
|
||
- 玩家进入触发区域时自动发放物品
|
||
|
||
## 使用方法
|
||
|
||
BP_ItemTrap 在项目中的典型调用流程:
|
||
|
||
- **陷阱初始化流程** — BeginPlay → 创建 BP_DefaultContainer → 存入 Container 变量 → 物品准备就绪
|
||
- **物品发放流程** — Tick 每帧检测(或自定义触发)→ GiveItems → 从 Container 创建物品 → 通过 IInventory 接口发放到 BP_NewChar 的 InventoryComp
|
||
|
||
## 用例
|
||
|
||
| 引用方 | 路径 | 用途 |
|
||
|--------|------|------|
|
||
| Playground | `/Game/地图关卡/Playground` | 关卡中的物品陷阱,演示触发式物品发放 |
|