程序丨教程:制作一个类似《神秘海域》的装备系统(下)
翻译:王成林(麦克斯韦的麦斯威尔 )
审校:黄秀美(厚德载物)
系列回顾:
Widget_ItemInfo
新建一个名为Widget_ItemInfo的控件。这是它的层级:
https://v.qq.com/txp/iframe/player.html?vid=b03997xv33h&width=500&height=375&auto=0
打开事件图表并加入这些变量:
表9
添加一个名为OnClicked的事件调度器。
添加一个名为SetInvManager的函数,它有一个输入,类型为InventoryManager引用:
以及另一个名为SetItemRef的函数,它有一个输入,类型为BP_BaseWeapon引用。
新建一个名为UpdateWidget的自定义事件:
如果武器被装备上了,该事件会隐藏Equipped文本并将武器的名称设置给UI。
在OnClicked(button_item)中我们需要创建ItemActions控件并将它的位置改为鼠标位置:
如你所见我在传递Weapon和Manager的引用。
UI_Inventory
现在有了这些控件我们可以随着Inventory UMG移动了。新建一个名为UI_Inventory的控件。
首先创建一张你的角色在黑色背景中的截图。
将它导入并创建一个名为M_Character的材料:
这样我们可以得到UMG中的alpha。
打开UI_Inventory,这里是它的层级:
https://v.qq.com/txp/iframe/player.html?vid=t0399wugdop&width=500&height=375&auto=0
打开事件图表并添加一个名为InventoryRef的变量,它的类型为InventoryManager引用。
添加一个名为SetInvManager的新函数:
添加另一个名为ClearSlots的函数:
该函数负责删除添加到Overlays中的控件。
添加另一个名为UpdateAmmo的函数:
该函数设置了文本控件。
添加另一个名为PopulateSlots的函数,它含有一个本地变量:
· L_WeaponRef(BP_BaseWeapon引用)
第一部分:
第二部分:
它看上去很复杂,但其实它只是更新了已创建控件的数据。就是那么简单。
新建一个名为UpdateData的自定义事件:
在Construct中我们设置Input Mode并显示鼠标:
新建一个名为CloseInventory的自定义事件:
最后是OnClicked(Button_Close):
这是UMG中的所有内容了!
显示物品栏
现在我们需要触发UI_Inventory。打开第三人称角色并添加名为UI_Inventory的变量,它的类型为UI_Inventory引用。
如果你在InventoryManager组件上点击右键,你会发现你可以添加Inventory StateChanged 事件:
这样我们只会在物品栏更新时更新UMG。
我使用“I”键来触发物品栏UI:
就是那么简单!
最终结果:
https://v.qq.com/txp/iframe/player.html?vid=e03995kv0f3&width=500&height=375&auto=0
【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。
今日推荐
添加小编微信,可享双重福利
1.加入GAD程序猿交流基地
获取行业干货资讯,观看大牛分享直播
2.直接领取60G独家程序资料库,地址在小编朋友圈
包括腾讯内部分享、文章教程、视频教程等全套资料
↓长按添加小编GAD苏苏↓