I have 3 weapons placed near each other and I’m showing a simple widget unique to each weapon whenever my character enters their sphere component and it works but whenever I make my character run in between them for like a minute switching between widgets unreal crashes. I commented out my end overlap handler and it crashed again but when I commented out my begin overlap handler there was no crashing. Also by using show Collisions I made sure that it crashes whenever a BeginOverlapEvent is fired.
BeginOverlaphandler:
UE_LOG(LogTemp, Warning, TEXT("Started"));
ATPSShooterCharacter* MyCharacter = Cast<ATPSShooterCharacter>(OtherActor);
if (MyCharacter != nullptr) {
UE_LOG(LogTemp, Warning, TEXT("Cast Success - Chr:%p - Wep:%p"), MyCharacter, this);
AMasterWeapon* TempW = MyCharacter->CurrentOverlappedWeapon;
MyCharacter->CurrentOverlappedWeapon = this;
UE_LOG(LogTemp, Warning, TEXT("Changed Weapon - Prev:%p - Cur:%p"), TempW, MyCharacter->CurrentOverlappedWeapon);
if (TempW != nullptr) {
TempW->DisableInput(Cast<APlayerController>(MyCharacter->GetController()));
TempW->POwner = nullptr;
if (TempW->WidgetInstance->IsInViewport()) {
TempW->WidgetInstance->RemoveFromViewport();
}
UE_LOG(LogTemp, Warning, TEXT("Disabled Input on %p"), TempW);
}
POwner = MyCharacter;
EnableInput(Cast<APlayerController>(MyCharacter->GetController()));
if (!WidgetInstance->IsInViewport()) {
WidgetInstance->AddToViewport();
}
UE_LOG(LogTemp, Log, TEXT("Enabled Input on %p"), this);
}
Also I’m not getting any logs before it crashes. What am I doing wrong?