Unreal中的碰撞

什么时候两个物体可以碰撞,什么时候会忽略两个物体的碰撞,碰撞触发事件怎么使用,射线碰撞又是什么。

什么时候两个物体可以碰撞

每个物体都有自己的类型,在细节面板上可以设置,其中默认包括下图中的六种,这些类型表示这个物体具有的类型,每个物体都是唯一的,并且也可以使用自定义的类型。

每个物体也可以设置与其交互的物体类型,同样是上面六种类型,你可以选择当前的物体可以与那些类型进行碰撞,哪些类型进行覆盖,那些物体忽略。

当一个物体可以与另一个物体互相为可以碰撞的类型时,就可以进行碰撞。

碰撞事件

Unreal中碰撞相关的事件常用的有以下几个,一般情况下我会在蓝图中进行实现,如果遇到比较复杂的逻辑,我会调用在CPP中声明并定义的相关函数,也就是说绑定的活我交给了蓝图:

  • OnComponentHit:当一个组件与另一个物体发生碰撞时触发。

  • OnComponentBeginOverlap:当一个组件开始与另一个物体重叠时触发。

  • OnComponentEndOverlap:当一个组件停止与另一个物体重叠时触发。

发射射线

在Unreal中发射射线是一个非常常用的操作,跟碰撞类似,射线也有射线通道,也可以在细节面板进行设置,这样就可以阻挡对应类型的射线。物体会阻挡包含阻挡类型的射线,而忽略其他射线。