蓝图学习-----06

碰撞

常见碰撞预设: BlockAll(阻挡所有,不管静态动态)BlockAllDynamic(阻挡所有动态)OverlapAll(重叠所有) NoCollision(无碰撞)。注意:NoCollision和Overlap视觉上是一致的,但不一样。

(所谓的物体静态动态即是它的可移动性,动态就是可移动)

碰撞的3种状态:BeginOverlap 、EndOverlap、Hit(2个刚体之间)。

     

注意overlap和hit要播放时有效果还需要勾选

蓝图中对碰撞3种状态的调用:选中场景对象,选择碰撞事件。

节点说明:

overlaped actor 即是本体对象。other actor是碰撞到本体对象的碰撞体对象。

拆分hit数据引脚。Blocking Hit:是否产生hit碰撞。Location:碰撞体(非本体)的坐标。impact point:碰撞点坐标。

Hit actor和hit节点中的other actor相同。

  

节点测试:

overlap测试:进出cubemesh对象时候,触发beginoverlap和endoverlap,输出文本。(注意把 “生成overlap事件”勾选)。

  

进cubemesh对象时候,触发beginoverlap摧毁碰撞对象。(注意把 “生成overlap事件”勾选)。

Hit测试:碰撞对象是,输出文本“hit”,(注意把 “模拟生成hit事件”勾选)。

hit次数查看。可以看到接触时候会多次触发hit,故hit事件常常配合DoOnce来使用。

案例:

人物碰撞对象A,导致对象B(cube2)移动。缺点:只能触发一次。

     

改进:触发hit后延迟1s会重置DoOnce节点,使其可以再次被执行一次,以此类推。(序列节点的输出是有顺序的,只是时间间隔非常短。所以它是hit触发后1s重置,而不是等 Then 0输出后延迟1s重置 ,注意。)

蓝图类碰撞

蓝图类的碰撞并不在其场景中的细节面板中设置。下图对比普通对象 和 蓝图类对象的场景中细节面板的碰撞属性。

         

其碰撞设置面板:双击蓝图类,选择特定组件后,在蓝图类中的细节面板中。

在蓝图类中调用碰撞事件:

猜你喜欢

转载自blog.csdn.net/Milow88/article/details/106580133
今日推荐