No, but what you could do is something like this, declared in your custom PlayerState header.
HEADER
-------------
DECLARE_DELEGATE(FOnPlayerColorChange)
class AMyPlayerState : APlayerState
{
GENERATED_BODY()
public:
UPROPERTY(ReplicatedUsing=OnRep_Color)
FLinearColor PlayerColor;
FOnPlayerColorChange OnColorChangeDelegate;
UFUNCTION()
void OnRep_Color();
};
SOURCE
-------------
void AMyPlayerState::OnRep_Color()
{
OnColorChangeDelegate.ExecuteIfBound();
}
And then in your custom Pawn header.
HEADER
-------------
class AMyPawn : APawn
{
GENERATED_BODY()
public:
virtual void PostInitializeComponents() override;
void OnPlayerColorChange();
};
SOURCE
-------------
void AMyPawn::PostInitializeComponents()
{
Super::PostInitializeComponents();
AMyPlayerState* MyPlayerState = Cast<AMyPlayerState>(PlayerState);
MyPlayerState->OnColorChangeDelegate.BindUObject(this, &AMyPawn::OnPlayerColorChange);
}
void AMyPawn::OnPlayerColorChange()
{
AMyPlayerState* MyPlayerState = Cast<AMyPlayerState>(PlayerState);
FLinearColor NewColor = MyPlayerState->PlayerColor;
//DO COLOR RELATED STUFF
}