Can an AActor react on inEditor Select ?

So what i ended up doing:



.h

#if WITH_EDITOR

UFUNCTION()
void OnSelectionChanged(UObject* InObject);
#endif

protected:

#if WITH_EDITOR

FDelegateHandle OnSelectionChangedDelegateHandle;

virtual void PostActorCreated() override;
virtual void BeginDestroy() override;

bool bWasSelected = false;

#endif




.cpp

#if WITH_EDITOR

void AMyActor::PostActorCreated()
{
Super::PostActorCreated();

//Bind To SelectionChangedEvent if delegate is not yet bound
if (!OnSelectionChangedDelegateHandle.IsValid())
{
OnSelectionChangedDelegateHandle = USelection::SelectionChangedEvent.AddUObject(this, &AMyActor::OnSelectionChanged);
}
}

void AMyActor::BeginDestroy()
{
// If Delegate is bound remove it
if (OnSelectionChangedDelegateHandle.IsValid())
{
USelection::SelectionChangedEvent.Remove(OnSelectionChangedDelegateHandle);
OnSelectionChangedDelegateHandle.Reset();
}

Super::BeginDestroy();
}

void AMyActor::OnSelectionChanged(UObject* InObject)
{
// Check if Actor is selected and store selection
if (IsSelected())
{
bWasSelected = true;
}
// If the actor is not selected but was selected before
else if (bWasSelected)
{
//UE_LOG(OrbitCamera, Warning, TEXT("DE-SELECTED"));
bWasSelected = false;

//Do your deselection logic here

}
}
#endif