UE4碰撞与重叠(Collision:Block, Overlap,Ignore)


任意两个物体有碰撞的条件

①一定是互相设置了Collision Preset。

至少有一个实体开启了simulate physics。

 

OnActorHit事件响应条件

①事件所对应的物体必须开启了Simulating Generates Hit Events。

②而另一个与之碰撞的实体则不是必须要开启。

③二者至少有一个开启来simulate physics。

(对于一个character角色很特别,即使character与被撞到的物体都没有开启了Simulating Generates HitEvents,被撞物体的OnActorHit事件也会执行)

 

OnActorOverlap事件响应条件

①两个发生重叠的实体都要保证开启了Generate Overlap Events。

②并且在其中任意一个碰撞预设(Collision Presets)里面对另一方设立了overlap。

(这里可能官方文档描述有些区别,大家可以试试)

 

OnActorHit与OnComponentHit

对于存在于编辑器场景的实体,添加的是OnActorHit

蓝图里面对每个组件添加碰撞都是OnComponentHit事件。

Component一般是Actor的子组件,Actor可以无限制的添加组件

UE4碰撞与重叠(Collision:Block, Overlap,Ignore)_第1张图片


下面是一些注意事项:

1.有一些Mesh不能进行物理模拟,有的可以模拟但是无法产生碰撞。注意下面的参数Collision Prims参数,如果为0,就是无法模拟物理或者无法产生碰撞。

 UE4碰撞与重叠(Collision:Block, Overlap,Ignore)_第2张图片

2.还有一些Static Mesh可以开启,但是没有效果(比如例子程序中的Floor_400X400,即使开启也不会与任何物体碰撞,不知道是不是和参数Collision Prims参数有关)


3.有关character的复杂碰撞问题

发现对于拥有Mesh等多个Component的蓝图Actor,如果想触发其他实体的OnActorOverlap必须要使Mesh的Generate OverlapEvents开启。(当然碰撞预设里面也要设置)

对于一个character角色很特别,如果想触发其他实体的OnActorCollision。即使character与被撞到的物体都没有开启了Simulating Generates HitEvents,被撞物体的OnActorHit事件也会执行


关于Physics Bodies的相关参数意义,可参考链接 Physics Bodies(中文翻译)—UE4官方文档

你可能感兴趣的:(collision,UE4,overlap,UE4碰撞,OnActorHit)