If you try to call such method from BP it will work. But then if you try to build game with nativization you’ll get a compilation error.
Something like this: error: ‘GetOwningPawn’ is a protected member of ‘AHUD’
Engine/Source/Runtime/Engine/Classes/GameFramework/HUD.h
protected:
/** Returns the PlayerController for this HUD's player. */
UFUNCTION(BlueprintCallable, Category=HUD)
APlayerController* GetOwningPlayerController() const;
/** Returns the Pawn for this HUD's player. */
UFUNCTION(BlueprintCallable, Category=HUD)
APawn* GetOwningPawn() const;
I try to imagine why such code even works with blueprints.
I think that protected BlueprintCallable functions should have the same logic as BlueprintProtected or even better didn’t compile.