UE4在C++中使用OnComponentBeginOverlap之类的时间

时间:2022-05-11 20:53:56

首先说明一下,官方文档是错的,在4.10版本下,绑定函数在角色类的构造函数中不起作用。2016.2.12

这里角色类为例

首先在头文件中添加:

UFUNCTION()
void OnOverlapBegin(class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

OnOverlapBegin为自己定义的碰撞函数

然后在Cpp文件中的SetupPlayerInputComponent函数中添加绑定函数:

StartCollectionSphere->OnComponentBeginOverlap.AddDynamic(this, &AThirdPersonCharacter::OnOverlapBegin);

StartCollectionSphere为自己定义的USphereComponent。AThirdPersonCharacter为角色类。

之后添加碰撞函数的定义

void AThirdPersonCharacter::OnOverlapBegin(class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
  GEngine->AddOnScreenDebugMessage(, 1.0f, FColor::Red, TEXT("!!!!!!"));
}