我们在很多小游戏中可以看到,当玩家走到可拾取物品时,按相应的按键或者自动拾取物品。这个怎么在UE4中制作拾取物品的效果呢?
游戏中的物品是玩家可以收集的任何物品,可以使用BP_Banana作为项目。要检测多维数据集何时接触项目,需要一个事件节点,该事件节点在发生碰撞时触发,可以使用碰撞响应来生成此类事件。
碰撞响应确定演员与另一个演员碰撞时的反应,碰撞响应分为三种类型:忽略,重叠和阻塞。
忽略:演员们会互相穿插,不会触发任何事件。
重叠:参与者将通过彼此,一个重叠事件将触发两个参与者。
阻塞:演员们会互相阻拦。一个hitBlockevent将为两个参与者触发。
退出游戏,打开BP_Banana。选择StaticMesh组件,到“详细信息”面板设置碰撞响应。
大多数设置都是灰色的,点击Collision Presets旁边的下拉菜单。从列表中选择BlockAllDynamic“自定义”,这样就可以编辑了,指定项目和多维数据集之间的碰撞响应。
组件具有称为对象类型的属性。对象类型只是将相似的参与者组合在一起的一种便捷方式。由于多维数据集的类型为WorldDynamic,因此需要将碰撞响应更改为该类型。在“碰撞响应”部分下,在WorldDynamic中勾选Overlap。
要处理碰撞,需要使用重叠事件。点击“组件”,右键点击“ StaticMesh”。从上下文菜单中,选择Add Event\Add OnComponentBeginOverlap。
这会让OnComponentBeginOverlap(StaticMesh)节点添加到事件图。
创建一个DestroyActor节点并链接到OnComponentBeginOverlap(StaticMesh)节点。这个可以从游戏中删除目标演员。由于没有目标,就会删除调用它的演员。
关闭蓝图编辑器,确保在“蓝图”文件夹中。点击并拖动BP_Banana到视口,开始将物品放入关卡中。
单击播放,在UE4中就可以实现拾取物品的效果了。