添加拾取物

介绍如何创建可以放置在世界场景中供玩家拾取的物品。

Windows
MacOS
Linux
本页面的内容

默认情况下,动作RPG(ARPG)的玩家只能使用他们从商店购买的物品。但是这并不意味着这是玩家获取物品的唯一方式。在下面的操作指南中,我们将介绍如何创建可以放置在世界场景中供玩家拾取的拾取物。

步骤

  1. 首先,在Infinity Blade Weapons包中找到 SK_Blunt_Hambone 骨架网格体及其所有资源,然后将它们迁移到动作RPG项目。

  2. 接下来,在 Items 下面创建一个名为 Pickups 的新文件夹。 

  3. 然后将Blunt_Hambone文件夹拖到Pickups文件夹上。

    image6.png

  4. 从Blunt_Hambone文件夹中删除下列文件夹,因为它们不符合项目使用的命名规范。

    • InfinityBladesWeapons

    • Weapons 

    • Blunt

  5. 接下来,从文件夹名称及其所有各种资源的名称中删除 Blunt 一词。

    单击查看大图。

  6. 现在所有需要的内容都已添加并重命名,确保选择Hambone文件夹,然后在 内容浏览器 中右键单击,从显示的列表中选择 蓝图类(Blueprint Class) 选项。

    image5.png

  7. 将新的蓝图命名为 BP_Pickup_Hambone,然后双击将它打开。

    单击查看大图。

  8. 组件(Components) 部分添加下列组件以及下列设置。

    image9-1.png

    组件名称

    组件值

    球体碰撞(Sphere Collision)

    Radius = 64

    骨架网格体(Skeletal Mesh)

    SK_Hambone

  9. 接下来,在 变量(Variables) 部分中,创建一个名为 PotionType 的新变量,其 变量类型(Variable Type)RPGItem,而且该变量的默认值是 Potion_Health

    image13.png

  10. 在“组件(Components)”选项卡中选择 球体(Sphere) 碰撞,然后在 细节(Details) 面板的 事件(Events) 下方,单击 组件开始重叠时(On Component Begin Overlap) 选项上的白色加号,将它添加到事件图表。

    image17.png

  11. 第一个需要添加到事件图表的节点是 Cast To BP_PlayerCharacter 节点。这将确保只有玩家才能使用该拾取物,敌人无法使用。添加完该节点后,将它连接到 On Component Begin Overlap 节点,使其与下面的图像相符。

    单击查看大图。

  12. 接下来,我们需要确保当玩家从拾取物上面跑过时,拾取物不会阻止玩家。为了实现这个目的,向事件图表添加一个Set Collision Enabled节点,确保将 新类型(New Type) 输入设置为 无碰撞(No Collision)。完成时,事件图表应该与下图相符。

    单击查看大图。

  13. 现在我们需要向事件图表添加下列节点,这样我们就能够将拾取的物品添加到玩家的物品栏。

    • Add Inventory Item

    • Get Player Controller BP

    • Potion Type Reference

    image10.png

  14. 为了将药剂添加到当前物品栏,首先将 Potion Type 变量连接到 Add Inventory Item 节点的 新物品(New Item) 输入,然后将 Get Player Controller BP 连接到Add Inventory Item的 目标(Target) 输入。完成连接后,你的蓝图应该类似于下面的图像:

    单击查看大图。

  15. 接下来,将 Set Collision Enabled 节点的 输出 连接到 Add Inventory Item 节点上的 输入。这可以确保我们将正确的物品添加到正确的物品栏栏位。完成后,你的蓝图应该类似于下面的图像: 

    单击查看大图。

  16. 现在向事件图表添加 Set Slotted ItemMake RPGItemSlot 节点。

    image4.png

  17. 接下来我们需要设置逻辑,确保将拾取的物品放入正确的物品栏位置。为此,要将 Make RPGItemSlot 的输出连接到 Set Slotted Item 节点上的 物品插槽(Item Slot) 输入,如下图所示。

    单击查看大图。

  18. 接下来,将 Add Inventory Item 节点的 输出 连接到 Set Slotted Item 节点上的输入。然后将 Set Slotted Item 上的 目标(Target) 输入连接到 Player Controller,物品 输入 连接到 Potion Type 变量。这样可以让拾取的物品添加到物品栏中的正确插槽。完成所有这些操作后,你的蓝图的这一部分应该与下图类似:

    单击查看大图。

  19. 然后添加 Destroy Actor 节点,将 Set Slotted Item 节点的 输出 连接到 Destroy Actor 节点的 输入。这可以确保当玩家走到物品上方将其拾起时,该物品就会从世界场景中移除。完成这些操作后,你的蓝图应该与下图类似:

    单击查看大图。

  20. 最后,确保按 编译(Compile) 和 保存(Save) 按钮保存你的工作。

最终结果

现在BP_Pickup_Hambone已经完成,将BP_Pickup_Hambone蓝图从内容浏览器拖到ARPG关卡中,然后按“运行(Play)”按钮。游戏加载后,在关卡中找到拾取物,然后操纵玩家从它上方跑过。玩家一接触BP_Pickup_Hambone拾取物,该拾取物就会消失,而UI和物品栏将会更新,显示多了一瓶新药剂。你可以在下面的视频中看到活动示例。

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见