The value is right at editor or PIE .
The value of this property is created and stored using the NewObject。
The code is as follows:
UCLASS(Blueprintable, BlueprintType, Meta=(ShowWorldContextPin))
class XXX_API UMyModuleBase : public UObject
{
GENERATED_UCLASS_BODY()
public:
UPROPERTY(BlueprintReadWrite)
bool IsTriggered;
}
USTRUCT(Blueprintable, BlueprintType)
struct XXX_API FMySection
{
GENERATED_USTRUCT_BODY()
UPROPERTY(Instanced, EditAnywhere, BlueprintReadOnly)
TObjectPtr<UMyModuleBase> Module;
};
USTRUCT(Blueprintable, BlueprintType)
struct XXX_API FMyTrack
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadOnly)
TArray<FMySection> SectionArr;
public:
FPIGamePowerTrack Clone();
};
UCLASS(Blueprintable, BlueprintType)
class XXX_API UMyGA: public UGameplayAbility{
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<FMyTrack> TrackItemArr;
}
Example:
I have a blueprint inherited from UMyGA, Name BP_MyGA.
BP_MyGA
--TrackItemArr[1]
--SectionArr[1]
--Module (editor/pie value is valid, but is NULL in packaged project)