Hi,
Thanks for the explanation. I think I understand a little more now.
Still I think my question is not exactly answered. I came up with a better example. Take a look in the following hierarchy.
-- A.h
class A : public AActor
{
public:
UPROPERTY(VisibleAnywhere)
USceneComponent *C;
};
-- B.h
class B : public A
{
public:
B();
};
-- B.cpp
B::B()
{
RootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
C = CreateDefaultSubobject<USceneComponent>(TEXT("C"));
C->SetupAttachment(RootComponent);
}
This describes better my question. In this example, you CAN edit C but you CAN NOT edit RootComponent even though both of them are declared in a parent class. In A.h C is declared with UPROPERTY(VisibleAnywhere) so these UPROPERTY() are transfered when extended. In AActor the RootComponent is not even declared as VisibleAnywhere but you can edit it. Further more if you extend from AActor you can not edit RootComponent’s properties anymore. I want to understand that behavior.
Best,