创建结构体,命名为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中,修改接口事件

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

测试成功

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

  1. 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]

    给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...

  2. 22_ue4进阶末日生存游戏开发[EQS]

    EQS:环境查询系统 功能:1.按照规则生成点 2.跟踪搜寻目标 3.过滤目标 打开编辑器偏好设置 搜索eqs 我们得打勾 有什么变化呢? 创建AI的时候,出现了一个eqs 创建一个eps 进去之后, ...

  3. 21_ue4进阶末日生存游戏开发[行为树]

    上一节中setvalue只是我们测试用的,一般不会像上一节那样用. aicontroller的作用很简单,就是用游戏开始事件来运行一下行为树. 为了练习行为树,我们做一个原始demo:没看到主角就巡逻 ...

  4. 33_ue4进阶末日生存游戏开发[拾取面板UI]

    添加UI控件蓝图,命名为PickablePannel 再拉进去一个panel(为什么需要panel:他下面可以有任意多的组件,可以借助锚点进行方便相对布局) 技巧:按住shift+ctrl再点击锚点, ...

  5. 03_ue4进阶末日生存游戏开发[准星]

    进入游戏模式蓝图,选择默认准星 进入准星的蓝图  将准星变成白色 进入贴图,并将这个东西改成0 改成白色之后,如果我们想将准星再变为红色,我们可以直接调整蓝图就可以了. 打开准星蓝图,将G和B都改成0 ...

  6. 14_ue4进阶末日生存游戏开发[第一人称和第三人称的切换]

    在项目设置里面,新增加input设置ToggleView输入事件,输入为键盘v 打开小白人的蓝图,发现我们蓝图里只有一个默认的第三人你相机. 新增加一个相机,并为相机重命名,注意相机在哪一层里. 为了 ...

  7. 20_ue4进阶末日生存游戏开发[AI基础框架搭建]

    创建僵尸文件夹,僵尸我直接用的女英雄的模型,僵尸没有免费的资源. 在文件夹中创建character,并重命名 添加女英雄的mesh 创建ai的controller 僵尸character选择我们创建的 ...

  8. 02_ue4进阶末日生存游戏开发[准备工程]

    版本:4.19 选择路径,创建项目名称,选择初始的游戏模式 删掉,我们用不到的几何模型  这个文件夹也删了,反正也空了 把第一人称的模式也导进去 把第一人称模式的动画都删掉,用不到 audio也删掉 ...

  9. 23_ue4进阶末日生存游戏开发[随机巡逻]

    让僵尸在一个圆内(以初始位置为圆心)随机巡逻. 在黑板中,添加一个向量 树刚开始的时候就要执行初始化向量操作,如果已经初始化,我们就执行其他逻辑. 因为这个没有初始化向量的任务,我们就新建一个 我不知 ...

最新文章

  1. elasticsearch 分片_Elasticsearch最佳实践之分片使用优化
  2. Spring MVC的异步模式DefferedResult
  3. 网页设计师应向肖像画家吸取的11个理念
  4. golang 复制对象的正确做法
  5. 怎样改动SharePoint管理中心的语言
  6. 实现二叉树的序列化和反序列化
  7. 铣削力matlab,船用螺旋桨多轴铣削力仿真与优化+CAD图纸+MATLAB程序
  8. JavaWeb源码网上商城系统a
  9. 如何把word默认新建文档的格式样式更改为常用的格式样式呢
  10. con 元器件符号_altium designer常用元件电气符号和封装形式
  11. 真正了解gets() fgets() getc() fgetc()的区别
  12. 喜马拉雅xm格式转化mp3_MTS视频格式转化
  13. win10 windows许可证即将过期的解决办法
  14. 含有中文的图片正常显示(微信小程序)
  15. PTA(每日一题)7-43 验证哥德巴赫猜想
  16. from Crypto.Cipher import AES报错解决【WindowsLinux】
  17. fgets函数的使用
  18. latexstudio编译报错问题:无法启动buildview:Xelatex:xelatex.exe -synctex=1 -interacion=nonstopmode
  19. asp.net DES加密解密
  20. python : 超参数优化工具笔记 Tune with PyTorch Quick Start+基础概念

热门文章

  1. kettle任务在Linux服务器上定时调度
  2. Day042 意志力真好用
  3. js实现新浪微博评论
  4. 正考网:报考云南一级建造师能免试哪些科目
  5. 暴力拒绝白嫖,著名开源项目作者删库跑路,数千个应用程序无限输出乱码
  6. c#编程:事件delegate学习笔记-3
  7. 前端工程师高效H5开发工具,强力推荐这12款!
  8. 个人博客项目——项目简介及工程搭建
  9. cd---命令cmd打开文件夹
  10. python爬取网站验证码并保存