1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应

虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应

时间:2020-12-06 19:28:42

相关推荐

虚幻引擎图文笔记:用蓝图实现简单的碰撞以及碰撞响应

现实世界中的碰撞现象大家都司空见惯,比如:一枚硬币掉到地板上(和地板发生碰撞),发出清脆的响声。但在虚拟世界里,这个过程至少要分为两个步骤:

碰撞:硬币和地板发生碰撞碰撞响应:系统获取碰撞事件,然后调用一些列方法来播放碰撞的声音

本文将使用虚幻引擎的蓝图实现一个碰撞并响应的过程

文章目录

案例一: 基本碰撞检测效果演示搭建场景运行一下碰撞响应运行一下案例二:对碰撞对象进行过滤,然后响应效果演示搭建场景蓝图运行一下

本文中的碰撞响应效果以物体颜色变化为例,关于物体颜色变化的原理请见老王的另一篇博文《虚幻引擎图文笔记:游戏运行时如何在不更换材质的情况下修改物体材质的参数(比如:颜色)》。

案例一: 基本碰撞检测

效果演示

搭建场景

下面那个绿色的小球是今天的主角,当前我们使用的就是博文《虚幻引擎图文笔记:游戏运行时如何在不更换材质的情况下修改物体材质的参数(比如:颜色)》中的小球,我们稍稍把它抬高一点,以免它一上来就和地面发生碰撞。

在绿色球上方添加一个普通的球体(StaticMeshActor)并勾选它的Simulate Physics选项

运行一下

我们发现上面的小球落到绿色球上并弹走,说明碰撞发生了,接下来我们要对这个碰撞事件进行响应

碰撞响应

开启Simulation Generates Hit Events以告诉系统,我们需要检测并响应这个对象的碰撞事件了(为了避免不必要的效率损失,这个选项默认是未开启的)

然后我们修改一下绿色小球的蓝图

运行一下

案例二:对碰撞对象进行过滤,然后响应

效果演示

搭建场景

这回我们在绿球的上方添加两个小球,并分别为它们添加Tag为"A"和"B"

注意:这里添加的是ActorTag

蓝图

实现碰撞对象过滤的方式有很多,本文使用的是通过ActorTag。这个步骤最关键的就是从Event HitOther引脚获取和自己碰撞的另一个对象。

先获取到和绿球碰撞的Actor的第一个Tag,如果是"A"则让绿球变成红色,如果是"B"则让绿球变成蓝色。

运行一下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。