# BP_DefaultContainer ## 基本信息 - **类型**: Blueprint (UObject) - **父类**: UDefaultContainer - **源文件**: /Game/Blueprints/Playground/BP_DefaultContainer.BP_DefaultContainer - **模块**: Content/Blueprints/Playground ## 功能概述 BP_DefaultContainer 是 UDefaultContainer 的蓝图子类,作为物品系统的默认容器在蓝图层中使用。无额外自定义变量,直接使用 C++ 父类的完整 IItemContainer 实现,提供 CreateItem、GetItemViews、MoveItem 等物品操作接口。 ## 设计用意 UDefaultContainer 是 C++ 中 IItemContainer 的默认实现,但不方便在编辑器中直接引用。BP_DefaultContainer 提供了一个蓝图可引用、可放置的资产版本,使得其他蓝图(如 BP_InventoryComp)可以通过编辑器直接引用它作为物品存储容器,简化了工作流。 ## 职责范围 BP_DefaultContainer 作为物品容器的蓝图实例化版本,负责在编辑器中作为可引用的资产存在。底层的物品存储机制、IItemContainer 接口实现全部由 C++ 父类 UDefaultContainer 处理。 ## 项目内依赖 | 依赖项 | 关系 | 源文件 | |--------|------|--------| | UDefaultContainer | 父类 | Item 插件 | | IItemContainer | 间接实现 | Item 插件 | ## 外部视角 BP_DefaultContainer 是 UDefaultContainer(Item 插件 C++ 类)的蓝图子类,从外部调用者视角: **接口概览** - 无自定义变量或函数,所有接口继承自 C++ 父类 UDefaultContainer - UDefaultContainer 实现 IItemContainer 接口,提供:CreateItem、GetItemViews、MoveItem、RemoveItem 等物品操作 - 本身是纯配置层——使 UDefaultContainer 在蓝图中可引用 **外部交互方式** - 作为 BP_InventoryComp 的 DefaultContainer 变量默认实例 - 其他蓝图通过 BP_InventoryComp 间接访问 BP_DefaultContainer 的物品操作接口 **EventGraph 事件** | 事件 | 类型 | 触发时机 | 行为 | |------|------|----------|------| | (无) | — | — | EventGraph 为空,所有功能由 C++ 父类实现 | ## 使用方法 BP_DefaultContainer 在项目中的典型调用流程: - **初始化流程** — BP_InventoryComp.BeginPlay → 创建 BP_DefaultContainer 实例 → 存入 DefaultContainer 变量 → 外部系统通过 BP_InventoryComp 间接调用 IItemContainer 接口 ## 用例 | 引用方 | 路径 | 用途 | |--------|------|------| | BP_InventoryComp | `/Game/Blueprints/Playground/BP_InventoryComp` | 作为默认容器实例,管理物品存储 | | BP_Bomb | `/Game/Blueprints/Playground/BP_Bomb` | 容器引用,用于炸弹物品生命周期 | | BP_ItemTrap | `/Game/Blueprints/Playground/BP_ItemTrap` | 容器引用,用于陷阱物品管理 | | BP_Barrel | `/Game/Blueprints/Playground/BP_Barrel` | 容器引用,用于木桶物品管理 |