1.添加背包物品信息的缩略图
我们最后实现的是在场景中,吃了香蕉增加能量,吃橘子增加魔法值,捡起木头可以生活这样种种特效,所以我们要在背包中创建这些物品的缩略图
我们找到想要的缩略图之后用画图工具打开,选择重新调整大小,依据-像素。取消勾选保持纵横比
这里讲像素设置为32*32,我觉得是最好的效果,你们也可以根据自己的UI界面调整
在内容浏览器中添加这些纹理,然后保存所有,这样文本格式就变成可以在Unreal中正常使用的纹理贴图
2.创建UI控件
在内容浏览器中创建三个控件。GameHUD负责玩家状态显示,背包系统中物品的信息显示,以及玩家看到的所有的UI界面,Inventoryslot则负责背包中的槽,也就是背包中物品的交换,丢弃以及拾取等等,而Pickuptext则负责当玩家靠近物品并指向它时,物品上方显示的物品的详细信息。
3.蓝图通信
回到第一人称蓝图中,在变量中添加如下变量,这些变量储存的会是玩家的状态信息
在这里将初始值设为<1的数,方便在游戏运行时检验我们的脚本是否正确
下面要处理的就是第一人称的HUD,打开该蓝图
这里默认的是显示枪的准星,我们想要的效果是当玩家指向那些物品时,显示十字准星,所以需要一个分支判断,我们添加一个变量show Crosshair作为判断的条件,默认为True
修改为如下连接
下面我们需要做的是为背包添加通信蓝图,这样才能将物品,血条以及背包这三个系统相互联系,形成一种逻辑关系,所以我们需要在FirstpersonBP中添加一个Plueprint Interface,这个蓝图接口相当于一个中介,蓝图可以与接口进行交互,而其他与接口连接的蓝图就可以得到传送的信息。
我们命名为ActionInterface
我们要为这个接口添加两个函数,一个是接收蓝图传输来的指令,另一个是拒绝指令,双击蓝图,在我的蓝图面板中添加UseAction以及DropAction
在Dropaction函数下添加输入,并将类型设置为actor类
这样操作会传入我们选择的希望从背包中扔掉的物品
最后,我们在bp文件夹下创建蓝图-结构体
这样机构体就是一系列存储在这个容器中的变量集合,可以在需要的时候提取相关部分
最后一步就是在结构体中添加背包中所需要的变量
1.物品【actor】
2.物品缩略图标【Texture 2D】
3.物品信息【Text】
4.背包操作信息【Text】
这样就实现了背包关于蓝图通信之间的基本设置,下一篇文章将会使用UMG构造Unreal 的UI交互