I have seen this for a couple of times when I have a UPROPERTY() member pointer inside a F-prefixed class (one that does not inherit from UObject). As entering PIE mode, the pointer is always reset to default value being set inside the class.
So I guess there is no meaning of having that member for a non-UObject class, right?
Yes, UE4 reflection system only supports UObjects with UCLASS and you can use UPROPERTY also in USTRUCT
Note that those are just markers for UHT to generate extra code that registers those property, they are empty macros so compiler simply paste nothing and won’t throw any error regardless where you place them GENERATED_BODY() is the spot where everything is pasted to the class.
Thank you, ! By the way, as I understand that only registered property with UPROPERTY(), due to not being garbage collected prematurely, could retain its value as entering PIE mode?