2.7 KiB
2.7 KiB
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 |
关卡中的物品陷阱,演示触发式物品发放 |