我们在很多小游戏中可以看到,当玩家走到可拾取物品时,按相应的按键或者自动拾取物品。这个怎么UE4中制作拾取物品的效果呢?


1
创建物品


游戏中的物品是玩家可以收集的任何物品,可以使用BP_Banana作为项目。要检测多维数据集何时接触项目,需要一个事件节点,该事件节点在发生碰撞时触发,可以使用碰撞响应来生成此类事件。

碰撞响应确定演员与另一个演员碰撞时的反应,碰撞响应分为三种类型:忽略,重叠和阻塞。

忽略:演员们会互相穿插,不会触发任何事件。

重叠:参与者将通过彼此,一个重叠事件将触发两个参与者。

阻塞:演员们会互相阻拦。一个hitBlockevent将为两个参与者触发。


2
设置碰撞响应


退出游戏,打开BP_Banana。选择StaticMesh组件,到“详细信息”面板设置碰撞响应。

大多数设置都是灰色的,点击Collision Presets旁边的下拉菜单。从列表中选择BlockAllDynamic“自定义”,这样就可以编辑了,指定项目和多维数据集之间的碰撞响应。

组件具有称为对象类型的属性。对象类型只是将相似的参与者组合在一起的一种便捷方式。由于多维数据集的类型为WorldDynamic,因此需要将碰撞响应更改为该类型。在“碰撞响应”部分下,在WorldDynamic中勾选Overlap。


3
处理碰撞


要处理碰撞,需要使用重叠事件。点击“组件”,右键点击“ StaticMesh”。从上下文菜单中,选择Add Event\Add OnComponentBeginOverlap。

这会让OnComponentBeginOverlap(StaticMesh)节点添加到事件图。

创建一个DestroyActor节点并链接到OnComponentBeginOverlap(StaticMesh)节点。这个可以从游戏中删除目标演员。由于没有目标,就会删除调用它的演员。


4
放置物品


关闭蓝图编辑器,确保在“蓝图”文件夹中。点击并拖动BP_Banana到视口,开始将物品放入关卡中。

单击播放,在UE4中就可以实现拾取物品的效果了。