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中,修改接口事件
此时预置物的按钮,就不需要这俩了
测试成功
35_ue4进阶末日生存游戏开发[背包系统准备]相关推荐
- 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]
给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...
- 22_ue4进阶末日生存游戏开发[EQS]
EQS:环境查询系统 功能:1.按照规则生成点 2.跟踪搜寻目标 3.过滤目标 打开编辑器偏好设置 搜索eqs 我们得打勾 有什么变化呢? 创建AI的时候,出现了一个eqs 创建一个eps 进去之后, ...
- 21_ue4进阶末日生存游戏开发[行为树]
上一节中setvalue只是我们测试用的,一般不会像上一节那样用. aicontroller的作用很简单,就是用游戏开始事件来运行一下行为树. 为了练习行为树,我们做一个原始demo:没看到主角就巡逻 ...
- 33_ue4进阶末日生存游戏开发[拾取面板UI]
添加UI控件蓝图,命名为PickablePannel 再拉进去一个panel(为什么需要panel:他下面可以有任意多的组件,可以借助锚点进行方便相对布局) 技巧:按住shift+ctrl再点击锚点, ...
- 03_ue4进阶末日生存游戏开发[准星]
进入游戏模式蓝图,选择默认准星 进入准星的蓝图 将准星变成白色 进入贴图,并将这个东西改成0 改成白色之后,如果我们想将准星再变为红色,我们可以直接调整蓝图就可以了. 打开准星蓝图,将G和B都改成0 ...
- 14_ue4进阶末日生存游戏开发[第一人称和第三人称的切换]
在项目设置里面,新增加input设置ToggleView输入事件,输入为键盘v 打开小白人的蓝图,发现我们蓝图里只有一个默认的第三人你相机. 新增加一个相机,并为相机重命名,注意相机在哪一层里. 为了 ...
- 20_ue4进阶末日生存游戏开发[AI基础框架搭建]
创建僵尸文件夹,僵尸我直接用的女英雄的模型,僵尸没有免费的资源. 在文件夹中创建character,并重命名 添加女英雄的mesh 创建ai的controller 僵尸character选择我们创建的 ...
- 02_ue4进阶末日生存游戏开发[准备工程]
版本:4.19 选择路径,创建项目名称,选择初始的游戏模式 删掉,我们用不到的几何模型 这个文件夹也删了,反正也空了 把第一人称的模式也导进去 把第一人称模式的动画都删掉,用不到 audio也删掉 ...
- 23_ue4进阶末日生存游戏开发[随机巡逻]
让僵尸在一个圆内(以初始位置为圆心)随机巡逻. 在黑板中,添加一个向量 树刚开始的时候就要执行初始化向量操作,如果已经初始化,我们就执行其他逻辑. 因为这个没有初始化向量的任务,我们就新建一个 我不知 ...
最新文章
- elasticsearch 分片_Elasticsearch最佳实践之分片使用优化
- Spring MVC的异步模式DefferedResult
- 网页设计师应向肖像画家吸取的11个理念
- golang 复制对象的正确做法
- 怎样改动SharePoint管理中心的语言
- 实现二叉树的序列化和反序列化
- 铣削力matlab,船用螺旋桨多轴铣削力仿真与优化+CAD图纸+MATLAB程序
- JavaWeb源码网上商城系统a
- 如何把word默认新建文档的格式样式更改为常用的格式样式呢
- con 元器件符号_altium designer常用元件电气符号和封装形式
- 真正了解gets() fgets() getc() fgetc()的区别
- 喜马拉雅xm格式转化mp3_MTS视频格式转化
- win10 windows许可证即将过期的解决办法
- 含有中文的图片正常显示(微信小程序)
- PTA(每日一题)7-43 验证哥德巴赫猜想
- from Crypto.Cipher import AES报错解决【WindowsLinux】
- fgets函数的使用
- latexstudio编译报错问题:无法启动buildview:Xelatex:xelatex.exe -synctex=1 -interacion=nonstopmode
- asp.net DES加密解密
- python : 超参数优化工具笔记 Tune with PyTorch Quick Start+基础概念