📅  最后修改于: 2023-12-03 15:05:42.253000             🧑  作者: Mango
在UE4中,Overlap Event是一个重要的事件,当物体重叠时便会产生该事件。而EndOverlap便是当物体结束重叠时触发的事件。接下来我们将介绍如何在UE4中使用EndOverlap,并给出相应的C++代码示例。
在UE4中,EndOverlap事件可以用于任何Overlap Event被触发的Actor。当Actor离开了它所重叠的物体时,便会触发EndOverlap。常见的应用场景有当Actor碰撞到物体时,比如子弹射出后离开了击中的物体时,就会触发EndOverlap事件。
在代码中,EndOverlap是一个虚函数,它在Actor.h文件中声明,需要在.cpp中实现。以下是一个示例:
// 在Actor.h中声明
UFUNCTION()
virtual void OnOverlapEnd(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);
// 在.cpp中实现
void AMyActor::OnOverlapEnd(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex)
{
Super::OnOverlapEnd(OverlappedComp, OtherActor, OtherComp, OtherBodyIndex);
// 结束了Overlap时会进行的操作
}
EndOverlap函数中的参数含义,分别为:
需要注意的是,如果我们在Actor.h中定义了另一个inline方法OnOverlapEnd_Implementation,那么UE4会认为EndOverlap是一个接口实现,这时候需要在.cpp中定义OnOverlapEnd_Implementation方法,并实现其中的EndOverlap代码。
以上便是关于UE4中EndOverlap以及相应的C++实现方法的介绍。在使用EndOverlap的时候,需要注意碰撞体和碰撞物体都必须开启Overlap检测,才能触发EndOverlap事件。