Overlap C++

Hello i am trying to do overlap on actor but didnt work

include “WeaponPickup.h”
include “Components/StaticMeshComponent.h”
include “MyFPSCharacter.h”
include “Kismet/GameplayStatics.h”

// Sets default values
AWeaponPickup::AWeaponPickup()
{
PrimaryActorTick.bCanEverTick = false;

// Create mesh and set as root
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
RootComponent = Mesh;

// Collision setup
Mesh->SetCollisionProfileName(TEXT("OverlapAllDynamic"));
Mesh->SetGenerateOverlapEvents(true);

// Bind component overlap events
Mesh->OnComponentBeginOverlap.AddDynamic(this, &AWeaponPickup::OnOverlap);
Mesh->OnComponentEndOverlap.AddDynamic(this, &AWeaponPickup::OnEndOverlap);

}

void AWeaponPickup::BeginPlay()
{
Super::BeginPlay();
}

void AWeaponPickup::OnOverlap(
UPrimitiveComponent* OverlappedComponent,
AActor* OtherActor,
UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex,
bool bFromSweep,
const FHitResult& SweepResult)
{
if (AMyFPSCharacter* Player = Cast(OtherActor))
{
Player->FocusedPickup = this;
GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::Yellow, TEXT(“Overlap detected! Press F to pick up weapon”));
}
}

void AWeaponPickup::OnEndOverlap(
UPrimitiveComponent* OverlappedComponent,
AActor* OtherActor,
UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex
)
{
if (AMyFPSCharacter* Player = Cast(OtherActor))
{
if (Player->FocusedPickup == this)
{
Player->FocusedPickup = nullptr;
GEngine->AddOnScreenDebugMessage(-1, 1.5f, FColor::Red, TEXT(“Left pickup area”));
}
}
}