I have a custom uobject class as such (simplified version):
UCLASS(DefaultToInstanced, Blueprintable, BlueprintType, EditInlineNew)
class MYPROJECT_API UMyObject : public UObject {
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 MyValue = 10;
UFUNCTION(BlueprintCallable)
virtual void UpdateValue();
}
and I’d like to instance them & set their values in the constructor of my character
MyCharacter.h file
UCLASS()
class MYPROJECT_API AMyCharacter : public ACharacter {
GENERATED_BODY()
public:
AMyCharacter();
UPROPERTY(Instanced, VisibleAnywhere)
UMyObject* MyObjectA;
UPROPERTY(Instanced, VisibleAnywhere)
UMyObject* MyObjectB;
UPROPERTY(Instanced, VisibleAnywhere)
UMyObject* MyObjectC;
...
};
MyCharacter.cpp file
AMyCharacter::AMyCharacter() {
...
MyObjectA = CreateDefaultSubobject<UMyObject>(TEXT("My Object A"));
MyObjectA.MyValue = 58;
MyObjectB = CreateDefaultSubobject<UMyObject>(TEXT("My Object B"));
MyObjectB.MyValue = 391;
MyObjectC = CreateDefaultSubobject<UMyObject>(TEXT("My Object C"));
MyObjectB.MyValue = 75;
}
Is this the right way to doing so? or will this cause any issues/ inconsistencies ?