Exactly himself post.
Constructor:
UBoxComponent* BoxCollision = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxCollision"));
BeginPlay:
BoxCollision->OnComponentBeginOverlap.AddDynamic(this, &"XX Class"::OnTriggerBeginOverlap);
Event handler:
void XX Class::OnTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
APawn* Pawn = Cast<APawn>(OtherActor);
Pawn->SetActorLocation(FVector(10, 10, 10), false, nullptr, ETeleportType::TeleportPhysics);
}
In 99% there is a movement of a pawn at a high speed from a position.
If in the processor to wait a certain amount of time, everything happens normally.
Another point, if you use OnComponentHit, all is well!
In the documentation of such things there is not a single word, maybe someone will be able to explain what the problem is?!!!
My guess is that in the OnComponentBeginOverlap handler you can’t move a Pawn. But why?
Plus, if you can withstand the movements themselves before the arrival of the tick, it is also all good.
Thanks in advance!