How to get the actor of an overlapping actor with the player character?

I would put most of the logic into your “Portal” blueprint.

You don’t want to use GetOverlappingActors, because that would give you overlapping actors only for that frame. To constantly check it on every single tick would be really expensive!

Instead, setup a trigger box and catch OnOverlapBegin and OnOverlapEnd events. This can be using this code

//Constructor 
// Create a CollisionBox component named TriggerComp

//BeginPlay
TriggerComp->OnComponentBeginOverlap.AddDynamic(this, &AMyActor::OnTriggerBeginOverlap);
TriggerComp->OnComponentBeginOverlap.AddDynamic(this, &AMyActor::OnTriggerEndOverlap);

void AMyActor::OnTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
	// Cast OtherActor to your Player character and show UMG
}

void AMyActor::OnTriggerEndOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex)
{
    // Stop showing UMG
}

You can even pass the LevelName to UMG in the overlap!

Good luck!