二级菜单的功能按钮的实现(物品给玩家加血、加能量、加弹药等)
新建一个玩家变量的结构体
在第一人称的蓝图里添加一个改变玩家变量的函数
给拾取物的结构体新加一条结构 类型是玩家变量
做功能按钮的交互
在背包蓝图里新建一个函数Use Action,用于功能按钮的点击调用
可以给物品设置一些玩家属性相关的量,用于测试(我的物品只能在第一次执行的时候成效)
修改:不可以拾取超出储物槽数量的东西
拖拽背包按钮
同类合并,异类互换
新建假的UI,重命名为WB_DragSlotVisual
这里的size和上面bag的大小有关,差不多匹配就行
在储物格放置一个dispatch信号
拖和放的具体操作要在背包里实现,因为背包才有数据
异类互换
通过BP_CanPickup新建一个子类
显示继承信息
修改改解构体的默认值(还要修改模型变成别的南瓜)
改改在场景里的新物体的默认值数据
效果:
同类合并
一个储物槽设置放置空间为99个,那么会有两种情况:
超出99个(分开两个格子放),
小于等于99个(拖的格子消除,放的格子加上这个数量)
小于99的情况:(Refresh Inventory节点后面改名叫Refresh Inventory UI)
加上大于99的情况
拓展:可拾取物做一个点火功能
优化了使用物品的逻辑
现在BP_CanPickup里拿到 玩家引用
在拾取物BP_CanPickup里新建一个函数Use Item
子类黄南瓜的丢火功能
效果:
优化使用过的物品仍能拾取的bug
(南瓜点了火丢出去仍旧能拿回来)
在BP_CnaPickup里新建一个布尔变量NotUse,默认值设置为true(注意,子类里面的NotUse也要把默认值设为真)
给物品的拾取逻辑再加上这个条件
对物品的 使用的逻辑 附加上这个布尔的 否 操作