• 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中,修改接口事件

     

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

     测试成功

  • 相关阅读:
    dom——页面的渲染过程
    性能压力测试的定义及步骤是什么
    ThreadLocal 详解
    【毕业设计】12-基于单片机的电子体温计(原理图工程+源码工程+仿真工程+答辩论文)
    matplotlib做时钟
    正则表达式
    测试为什么分白盒、黑盒、单元、集成测试?
    计算机毕业设计(附源码)python影城在线售票及票房数据分析系统
    黄素单核苷酸小麦麦清白蛋白纳米粒|石杉碱甲乳清白蛋白纳米粒Huperzine-whey protein|化学试剂
    微服务开发与实战Day01 - MyBatisPlus
  • 原文地址:https://blog.csdn.net/zhang2362167998/article/details/126196959