35_ue4进阶末日生存游戏开发[背包系统准备]

创建结构体,命名为ItemSlot

 添加四个变量分别是Type、Name、Icon、Count

 

类型分别是itembase类型的引用 ,text,texture 2d的对象引用和整数类型。

  创建SurvivalPlayState蓝图

 

打开项目设置,将其设置为默认的playstate

 为背包创建一个类,类型是object,命名为bag

 

 增加一个变量,整数型,命名capacity,含义为背包的最大库存(重量),初始值为100

 增加一个变量,整数型,命名Load,含义为目前的库存

 增加一个数组,类型是ItemSlot,命名为Content

 在我们创建的palystate的蓝图中,创建bag蓝图的引用。

 我们在itembase里面,添加Weight变量,int类型,表示重量

为每个itembase的子类设置重量

 在背包蓝图里添加函数TestCapacity,用来检查背包是否还能装得下

 添加一个参数 ,类型为我们刚创建的结构体

 把该参数break一下。

获取item类型默认的重量

 

数量*默认重量=总重量

比较重量

  添加输出值

在添加一个输出值

 赋值

 添加TryAddItem函数

 

设置输入输出值

 首先判断是否可以添加

不可以的话直接返回false,可以的话直接做下一个逻辑。

可以的话,就通过便利,查看背包里是否有该类物品,类型相等,代表已经存在。

  存在数量就+1

 不存在就新增一个新item

在这个里面初始化bag变量

 ​​​​​​

 现在我们修改一下之前写过的代码,把pickable的ui控制蓝图绑定的事件修改一下。

为了方便起见,我们再创建一个结构体,命名为ItemInfo,里面存放ItemBase的三个属性。

我们在 ItemBase蓝图里面添加ItemInfo结构体类型的变量

之前三个变量就可以删了

 

 进入小白人蓝图,添加SurvivalPlayState类型的变量,在开始事件中进行初始化

构建pickup事件

修改pickup的参数类型

 拾取逻辑

 在itembase中,修改接口事件

 

此时预置物的按钮,就不需要这俩了

 测试成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的阅读机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值